seleniumjava使用教程:浏览器驱动配置+多窗口切换+测试报告生成手把手教

admin java教程 19


用 Java 做 Selenium 自动化测试的新手,是不是常遇到这些头疼事?浏览器驱动要么装不对版本,要么配置路径总报错,折腾半天程序都跑不起来;测试时点击链接突然弹出新窗口,脚本直接 “迷路”,找不到原来的页面元素;好不容易跑完测试,想看结果却只有控制台一堆文字,没有清晰的报告,老板问起来都没法直观展示?别慌,今天兔子哥就手把手教大家搞定 Selenium Java 的三个核心操作:浏览器驱动配置、多窗口切换和测试报告生成,全是白话步骤,跟着做保准能上手。

一、浏览器驱动配置:这几步做好,启动浏览器不费劲


驱动配置是入门第一道坎,很多人卡在这一步就放弃了。其实按顺序来,一点都不复杂。

1. 先搞懂驱动和浏览器的 “配对” 规则


Selenium 操作浏览器必须用对应的驱动,就像钥匙配锁一样。比如用 Chrome 浏览器,就得下 ChromeDriver;用 Firefox,就得下 GeckoDriver。最关键的是版本要对应,浏览器是 118 版,驱动就得找 118 开头的版本,差一个版本都可能启动失败。
怎么看浏览器版本?Chrome 右上角三个点→“关于 Chrome” 就能看到;驱动在哪下?直接搜 “ChromeDriver 官网”,找到对应版本下载就行,记得选和自己系统匹配的(Windows 选 win32,别管电脑是 64 位)。

2. 配置路径的两种方法,新手推荐第二种


下好驱动后,得告诉程序驱动在哪。第一种是把驱动放到 Java 安装目录的 bin 文件夹里,这样不用写路径程序也能找到。但缺点是换台电脑就得重新放,不太方便。
第二种是在代码里指定驱动路径,灵活多了,新手建议用这个:
java
// 导入需要的包import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;public class Test {public static void main(String[] args) {// 告诉程序驱动在哪(替换成你的驱动路径)System.setProperty("webdriver.chrome.driver", "D:\\tools\\chromedriver.exe");// 启动浏览器WebDriver driver = new ChromeDriver();// 打开百度试试driver.get("https://www.baidu.com");}}

运行后能打开 Chrome 并跳转到百度,就说明配置成功了。有朋友说自己按步骤做还是报错,这或许暗示驱动版本和浏览器没配对好,或者路径里有中文(路径最好别带中文和空格)。
不过话说回来,手动配置虽然麻烦,但能让你更清楚程序是怎么找到驱动的,以后换浏览器或升级版本时心里更有数。

二、多窗口切换:学会句柄操作,脚本不 “迷路”


测试时遇到新窗口弹出很常见,不切换窗口的话,脚本会一直操作原来的页面,自然找不到元素。

1. 先搞懂 “窗口句柄” 是什么


每个打开的窗口都有一个唯一的 “身份证号”,叫句柄(Handle)。Selenium 通过句柄来区分不同窗口,就像我们通过身份证号找人一样。
怎么获取句柄?用driver.getWindowHandle()能拿到当前窗口的句柄;用driver.getWindowHandles()能拿到所有窗口的句柄(返回一个集合)。

2. 切换窗口的完整步骤,附示例


比如我们要实现 “在百度首页点击链接打开新窗口,然后切换到新窗口操作”:
java
// 启动浏览器,打开百度(第一个窗口)WebDriver driver = new ChromeDriver();driver.get("https://www.baidu.com");// 获取第一个窗口的句柄,存起来String firstHandle = driver.getWindowHandle();// 点击链接打开新窗口(假设这个链接会打开新窗口)driver.findElement(By.linkText("新闻")).click();// 获取所有窗口句柄Set<String> allHandles = driver.getWindowHandles();// 遍历所有句柄,找到不是第一个窗口的那个for (String handle : allHandles) {if (!handle.equals(firstHandle)) {// 切换到新窗口driver.switchTo().window(handle);}}// 现在操作的就是新窗口了,比如打印标题System.out.println("新窗口标题:" + driver.getTitle());// 切回原来的窗口driver.switchTo().window(firstHandle);

新手常犯的错是遍历句柄时没判断,直接切换导致切错窗口。记住,一定要用第一个窗口的句柄做排除,这样才保险。

三、测试报告生成:用 TestNG 出报告,结果一目了然


光跑测试不行,还得有报告展示哪些用例过了、哪些失败了。TestNG 是 Java 里常用的测试框架,能自动生成报告,步骤很简单。

1. 先在项目里加 TestNG 依赖


如果用 Maven,在 pom.xml 里加这段(版本号可以换最新的):
xml
<dependency><groupId>org.testnggroupId><artifactId>testngartifactId><version>7.5version><scope>testscope>dependency>

如果不用 Maven,就手动下载 TestNG 的 jar 包,加到项目的库里面。

2. 写个简单的测试类,用 TestNG 注解


java
import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.Assert;import org.testng.annotations.AfterTest;import org.testng.annotations.BeforeTest;import org.testng.annotations.Test;public class BaiduTest {WebDriver driver;// 测试开始前启动浏览器@BeforeTestpublic void setup() {System.setProperty("webdriver.chrome.driver", "D:\\tools\\chromedriver.exe");driver = new ChromeDriver();}// 测试用例:打开百度,检查标题@Testpublic void testBaiduTitle() {driver.get("https://www.baidu.com");String title = driver.getTitle();// 判断标题是否包含“百度”Assert.assertTrue(title.contains("百度"));}// 测试结束后关闭浏览器@AfterTestpublic void teardown() {driver.quit();}}

3. 运行测试,查看报告


右键测试类→“Run As”→“TestNG Test”,跑完后在项目的 test-output 文件夹里,找到 index.html 文件,用浏览器打开就是测试报告。报告里会清楚显示测试用例数量、通过数、失败数,还能看详细日志。
不过关于不同版本 TestNG 生成的报告样式差异,具体机制我还没深入研究过,有时候换个版本报告布局会变,但核心内容都差不多,新手不用太纠结版本,能生成报告就行。

四、兔子哥的几句心里话


学 Selenium Java,这三个操作是基础中的基础。驱动配置练熟了,启动浏览器就不会卡壳;多窗口切换掌握了,复杂场景测试也不怕;测试报告生成了,测试结果才能说得清。
刚开始练的时候,别嫌麻烦,每一步都亲手敲代码试试。遇到报错别慌,先看控制台的错误信息,大部分问题都能从里面找到线索 —— 驱动报错就查版本,窗口切换错就打句柄日志看看,报告生成不了就检查依赖有没有加对。
其实自动化测试没那么难,关键是多练多试。兔子哥刚开始学的时候,光是驱动配置就折腾了一下午,后来发现是自己把驱动文件名写错了。所以别怕犯错,错一次就多记住一个坑。希望这篇教程能帮到刚入门的你,动手试试吧,你会发现自己慢慢能搞定这些操作了!

标签: webdriver.chrome.driver chromedriver.exe

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~