这篇博客继续讲解一些selenium的常见操作

selenium的下载与准备工作请看之前的博客:Java测试——selenium的安装与使用教程

先创建驱动

ChromeDriver driver = new ChromeDriver();

等待操作

我们上一篇博客讲到,有些时候代码执行过快,页面还没渲染完毕,因此会导致查找元素失败的情况 上一篇博客中使用线程阻塞等待的方式进行等待,这里介绍一下selenium中的几种等待操作

强制等待

也就是程序强制阻塞进行等待

Thread.sleep(毫秒数);

这种方法不能用的特别多,因为我们的测试用例有很多,如果一个测试用例需要阻塞等待三秒,那么100个测试用例就需要等待300秒了

隐式等待

可以使用下面这行代码进行隐式等待

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(秒数));

当我们执行隐式等待后,后面的driver在查询元素时都会先判断元素是否存在,如果存在就正常继续执行流程,如果不存在,会在我们指定的秒数中不断的轮询查看元素是否存在

显示等待

使用下面的方法可以显示等待

new WebDriverWait(driver,Duration.ofSeconds(秒数)).until(driver->待查找元素));

例如我们可以在5秒内显示等待查找百度搜索框

new WebDriverWait(driver,Duration.ofSeconds(5)).until(driver->driver.findElement(By.cssSelector("#kw")));

浏览器操作

浏览器的请求网址操作

driver.navigate().to(网址);

浏览器前进操作:

driver.navigate().forward();

浏览器后退操作:

driver.navigate().back();

浏览器刷新操作:

driver.navigate().refresh();

弹窗操作

弹窗分类

前端中弹窗分为三种: 警告弹窗:只有关闭 确认弹窗:有好和取消 提示弹窗: 有好,取消和输入框

弹窗操作

先将driver作用切换到弹窗上

driver.switchTo().alert()

确认操作:

alert.accept();

取消操作:

alert.dismiss();

输入文本操作:

alert.sendKeys("xxxx");

选择框操作

前端代码:

可以跟据多种方式对选择框中的内容进行选择

先选中选择框元素

WebElement element = driver.findElement(By.cssSelector("#ShippingMethod"));

创建select对象

Select select = new Select(element);

根据文本选择

select.selectByVisibleText("库里");

根据属性选择

select.selectByValue("30");

根据序号选择

序号从上至下,从0开始

select.selectByIndex(0)

执行脚本

我们可以执行js中的指令

driver。executeScript(js命令);

例如将浏览器页面滑到最上面

driver.executeScript("document.documentElement.scrollTop=0");

用js指令进行搜索

driver.executeScript("var kw = document.querySelector('#kw'); kw.value = '蔡徐坤'");

文件上传

driver.findElement(文件元素).sendKeys(文件路径);

例如:

driver.findElement(By.cssSelector("body > div > div > input[type=file]")).sendKeys("/Users/lixiao/Downloads/selenium-html/upload.html");

无头模式

我们可以选择自动化测试中不显示浏览器操作过程

ChromeOptions options = new ChromeOptions();

options.addAruguments("-headless");

ChromeDriver driver = new ChromeDriver();

这样后面的driver就是无头模式了

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: