自动化测试selenium

1.定位元素方式:

①css选择器;②xpath选择器

两个谁更好?

css选择器更好一点,平常都使用css选择器,效率更高。

webDriver提供了一系列的对象定位方法

2.css选择器:可以采用页面的属性如id、name、class、标签等进行元素定位

下面以百度网页为例子

①采用id、class实现定位百度的输入框

webDriver.findElement(By.cssSelector("#kw"));
webDriver.findElement(By.cssSelector(".s_ipt"));

在By.cssSelector("")中的属性可以直接复制,在开发者工具中,进行复制想要的元素的selector

如想要当前这个新闻超链接

在开发者工具中选中这个新闻的位置,右键->copy->copy selector即可

3.xpath定位

实现用xpath定位新闻的位置,右键->copy->copy xpath

webDriver.findElement(By.xpath("//*[@id=\"s-top-left\"]/a[1]"));

4.WebDriver API

①sendKeys 往输入框里面输入值
webDriver.findElement(By.cssSelector("#kw")).sendKeys("测试开发");

②click点击对象

当往输入框里面输入值时,点击“百度一下”按钮

webDriver.findElement(By.cssSelector("#kw")).sendKeys("测试开发");
webDriver.findElement(By.cssSelector("#su")).click();

③submit提交

submit和click实现的方法是一样的

区别:如果点击的元素是放在form标间中的,此时使用submit实现的效果和click的效果时一样的。若不是放在form标签中的,则不能够实现,

④clear清除:清除对象输入的文本内容

webDriver.findElement(By.cssSelector("#kw")).sendKeys("测试开发");
webDriver.findElement(By.cssSelector("#su")).click();
webDriver.findElement(By.cssSelector("#kw")).clear();

⑤text:用于获取元素的文本信息

获取“百度一下”这个按钮中的文字

String value = webDriver.findElement(By.cssSelector("#su")).getAttribute("value");
System.out.println(value);

⑥等待

(1)强制等待

sleep(2000);

(2)隐式等待

webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.DAYS);

(3)显示等待

WebDriverWait wait = new WebDriverWait(webDriver,3000);
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#su")));
隐式等待显示等待的区别:隐式等待是等待页面的所有元素,显示等待是等待一定条件的元素

⑦浏览器操作

(1)浏览器前进、后退、刷新

webDriver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");
webDriver.findElement(By.cssSelector("#su")).click();
sleep(2000);
webDriver.navigate().back();
sleep(2000);
webDriver.navigate().refresh();
sleep(2000);
webDriver.navigate().forward();

(2)浏览器最大化、全屏、设置规定的高和宽

webDriver.manage().window().maximize();
sleep(2000);
webDriver.manage().window().fullscreen();
sleep(2000);
webDriver.manage().window().setSize(new Dimension(600,1000));

(3)浏览器滚动条

webDriver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");
webDriver.findElement(By.cssSelector("#su")).click();
sleep(2000);
((JavascriptExecutor)webDriver).executeAsyncScript("document.documentElement.scrollTop=19999");//设置页面到做底端,这个数字随便写

⑧键盘事件

全选、复制、剪切、粘贴

webDriver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");
webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"A");
webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"C");
sleep(2000);
webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"X");
sleep(2000);
webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"V");

⑨鼠标事件

移动、右击

WebElement webElement = webDriver.findElement(By.cssSelector("#s-top-left > a:nth-child(1)"));找到当前的元素
Actions actions = new Actions(webDriver);
actions.moveToElement(webElement).contextClick().perform();perform一定要写,不然不起效果

双击

actions.moveToElement(webElement).doubleClick().perform();

⑩多层框架定位:当我们想要单击frame框架里面的按钮时

webDriver.switchTo().frame("按钮的标签");

⑪下拉框

WebElement webElement = webDriver.findElement(By.cssSelector("button"));
Select select = new Select(webElement);
select.selectByIndex(3);这里的下标是从0开始,也可以是selectByValue、selectByVisibleText

⑫alter处理

 /*弹窗取消*/
 webDriver.switchTo().alert().dismiss();
/*弹窗输入值*/
 webDriver.switchTo().alert().sendKeys("成功");
 /*弹出确认*/
 webDriver.switchTo().alert().accept();

⑬上传文件

webDriver.findElement(By.cssSelector("input")).sendKeys("上传文件的路径");

⑭关闭浏览器

close和quit的区别:

1.quit是关闭整个浏览器,close是关闭get打开的页面

2.quit清空缓存,close不会清空缓存

webDriver.close();
webDriver.quit();

⑮切换窗口

getWindowHandles:获取所有窗口的句柄

getWindowHandle:获取get申请页面所跳转的那个页面的句柄

webDriver.getWindowHandles();

⑯截图

要添加commos-io的依赖

File file = ((TakesScreenshot)webDriver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(file,new File("D:\\IDEA\\CeShi\\aaa.png"));保存文件的路径和名字

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值