用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

未分类2周前发布 gsjqwyl
11 0 0

自动化测试任务:

百度搜索自己的姓名。点击第一个链接(或者第二个),在新的页面上,添加断言,验证你的名字是否存在。

实验资料百度网盘下载路径:

链接: https://pan.baidu.com/s/1nVlHX_ivresul9Thg6Cvjw?pwd=2ydd 提取码: 2ydd

1.新建一个java工程

打开eclipse,点击菜单 File -> New -> Java Project

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

输入项目名称,(为了区分作业,请包含自己的姓名) 用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

2.将selenium 包添加到编译路径

1)在项目上添加文件夹”lib” ( 文件夹名也可以是其他的,不影响使用)

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

弹出窗口中指定文件夹名称

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

2) 将给大家下发资料中的lib文件夹下的“4_selenium-server-4..jar”复制到lib文件夹中

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

3)将jar包添加到编译路径

选中刚才添加的jar文件。点击右键菜单 build path -> add to build path

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

如下图所示。则说明selenium已经成功添加到编译路径了

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

3.将junit到编译路径

为了使用junit框架来编写测试脚本,我们可以把junit添加到工程中来

在工程上点击右键菜单 ** build path -> configure build path,..**

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

弹出窗口上。在library选项卡下,点击“ Add library

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

系统返回到 java build path 页面。点击【Apply and Close】

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

此时工程中可以看到junit4了奥

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

5.将浏览器驱动程序添加到工程中

selenium 并不能直接操作浏览器,它需要通过浏览器驱动程序操作浏览器。

为了便于管理,我们把浏览器驱动程序也放到项目工程中。

这里需要注意, 浏览器驱动程序一定要和浏览器一致,是火狐还是edge浏览器,版本是多少,都要弄清楚。

例如,

edge浏览器在网址中输入:edge://version/ 可以查看edge浏览器的版本号

火狐浏览器在网址中输入:about:support 可以查看浏览器版本

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

本次以火狐浏览器为例说明

新建文件夹“firefoxdriver”

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

然后把我给大家的firefoxdriver下的“geckodriver-v0.34.0-win32.exe”复制,粘贴该文件夹下

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

如下所示,火狐浏览器的驱动程序已经放到工程中了,后面我们就可以使用该驱动程序了

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

4.创建测试文件

在工程src目录上点击右键 New – > class ,添加一个java文件

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

输入测试类的名称(请大家包含自己的姓名,后面作业提交截图会用到)

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

5.编写第一个测试用例

1)输入如下图中的矩形框内的代码

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

2)导包

此时,@Test注解飘红,这是因为还没有将其添加到编译路径上

下面我们来导包。光标悬停在飘红的Test上时,系统会给出若干个快速解决方案。如下所示,选择导入 oig.junit

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

导入后,@Test不在飘红了,说明系统已经能识别到该类了。

3) 输入脚本

大家可以复制如下脚本。

复制之前可以看一下我写脚本的过程,对大家编写脚本也有帮助

元素定位,大家可以借助开发中工具(F12可以打开)点选元素,拷贝它的xpath定位方式 和css定位方式

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

```java
          System.setProperty("webdriver.gecko.driver", "firefoxdriver\\geckodriver-v0.34.0-win32.exe"); // 设置chrome驱动程序的路径
          WebDriver driver = new FirefoxDriver(); //实例化浏览器
          driver.get("https://www.baidu.com/");   //打开百度页面
          driver.manage().window().maximize();    //最大化窗口
          driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("曹红杏");  //搜索框输入 你的名字
          driver.findElement(By.xpath("//*[@id=\"su\"]")).click();
          driver.findElement(By.xpath("//*[@id=\"1\"]/div/div[1]/div[1]/h3/a")).click();
          //切换窗口
          Object win2 = driver.getWindowHandles().toArray()[1];
          driver.switchTo().window((String)win2);
          String text = driver.findElement(By.xpath("/html/body/div[6]/div/div/div[3]/form/div[1]/h3")).getText();
          Assert.assertEquals("曹红杏", text);
```

6.运行测试用例

选中要运行的测试用例执行

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

由于脚本中未考虑测试程序和被测程序的同步问题。有的页面还没有加载完成。测试程序就试图定位,导致元素定位不到,junit执行会出错

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本7. 三种同步方式

大家可以使用任意一种同步方式,使得脚本正常运行

强制等待

Thread.sleep(n); 停顿n毫秒

sleep可能抛出异常,异常可以自己处理,即使用try..catch捕获,也可以throw抛出,交给调用者处理

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

隐式等待

隐式等待时间也叫全局等待时间,并设置有超时时间;

即脚本运行到此处时,在等待时间内进行轮询,直到页面元素出现方继续向下运行, 若在超时时间内仍有元素未出现,则不再等待,脚本继续往下运行。

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(3)); 隐式等待具有全局性,对所有的元素定位都有效果

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

显示等待

显式等待是针对于某个特定的元素设置的等待时间, 在设置时间内,元素变得可用,则继续执行后续操作;如果等待时间后元素仍然不可用,则抛出NoSuchElementException异常。

例如:

WebDriverWait wait =new WebDriverWait(driver, 5); wait. until(ExpectedConditions.presenceOfElementLocated(By.xpath(“//*@id=’1′]/div/div[1]/h3/a”)));

8.窗口切换

百度搜索时,点击第一个链接,会打开一个新的页面。如果希望到新的页面上继续操作。

则需要先切换到该页面上奥。然后才能在该页面上定位元素,进行操作。

Object win2 = driver.getWindowHandles().toArray()[1];
driver.switchTo().window((String)win2);

© 版权声明

相关文章

暂无评论

暂无评论...