Selenium 自动化 —— 浏览器窗口操作

更多内容请关注我的专栏:

  1. 入门和 Hello World 实例
  2. 使用WebDriverManager自动下载驱动
  3. Selenium IDE录制、回放、导出Java源码

当用 Selenium 打开浏览器后,我们就可以通过 Selenium 对浏览器做各种操作,就像我们日常用鼠标和键盘操作浏览器一样,比如:

  • 打开新窗口
  • 切换到其它窗口
  • 关闭窗口
  • 关闭浏览器
  • ......
    今天我们就来学习这些操作。
1. 打开网页

通过 get() 函数, 我们就可以使用浏览器打开指定的网页。

java 复制代码
driver.get("https://www.w3cschool.cn/html/html-form.html");
2. 后退 / 前进

平时使用浏览器时,我们通常会点击浏览器左上角的 [前进] / [后退] 图标,返回到前一个或下一个网页。

Selenium 也提供了这样的方法 back() 和 forward()

java 复制代码
driver.get("https://www.w3cschool.cn/html/html-form.html");
Thread.sleep(3000);

driver.get("https://www.baidu.com");
driver.navigate().back();
Thread.sleep(3000);
driver.navigate().forward();

加了延迟,是为了更清楚看到效果。

3. 另一种打开网页

前面使用driver.get(url) 是最常用的打开网页的方式,但是还有另一种方式:

java 复制代码
driver.navigate().to("https://www.w3cschool.cn/html/html-form.html");

这种方式效果和 get() 没有太大的区别,但是它有一个好处,就是 to() 返回的是 Navigation 对象,是的,上面的 back()forward() 方法都是这个对象的方法,这是一种链式调用!

java 复制代码
WebDriver.Navigation navigation = driver.navigate();
navigation.to("https://www.w3cschool.cn/html/html-form.html");
navigation.back();
navigation.forward();
4. 获取基本信息

打开一个网页,我们通常可以看到两样东西,网页标题和网页地址,还可以查看网页的源码,用 Selenium 同样很简单做到。

java 复制代码
driver.get("https://www.w3cschool.cn/html/html-form.html");
Assert.assertEquals("HTML 表单_w3cschool", driver.getTitle());
Assert.assertEquals("https://www.w3cschool.cn/html/html-form.html", driver.getCurrentUrl());
Assert.assertTrue(driver.getPageSource().contains("<html"));
5. 关闭窗口

有时候,我们需要关闭浏览器窗口,比如某个TAB页,就像我们平时点击 "X" 图标一样。

java 复制代码
driver.close();
6. 关闭浏览器

我们测试完后,需要关闭浏览器,这样可以释放资源。

java 复制代码
driver.close();

那么问题来了 quit()close() 有什么区别呢?

  • 如果只有一个窗口,关闭当前窗口,浏览器页也会退出
  • 如果有多个窗口,关闭当前窗口,浏览器不会退出

其实和我们真正用浏览器时一样!可见 Selenium 就是对我们平时操作浏览器行为的封装。

到这里我们就学习了浏览器窗口常用的几种操作,关注CSDN - 兰亭序咖啡,和我一起学习探讨 Selenium 自动化和其它技术。

相关推荐
七度黑光16 小时前
用 openclaw 给故障复盘打分:质量审核自动化实践
运维·服务器·前端·数据库·自动化
123过去17 小时前
nfc-list使用教程
linux·网络·测试工具·安全
软件测试媛18 小时前
2026软件测试面试题大全(含答案+文档)
功能测试·测试工具·面试·ai软件测试
class心平气和18 小时前
postman-mcp-server
测试工具·postman
测试19981 天前
Python+Excel读取和存储测试数据完成接口自动化测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
厦门辰迈智慧科技有限公司1 天前
高边坡自动化监测解决方案
自动化·高边坡监测·边坡自动化监测
机器人零零壹1 天前
物料单元设计入门篇:如何利用iRobotCAM实现机器人物料生产单元的编程与自动化
机器人·自动化·工业软件·虚拟调试·离线编程·中望3d·irobotcam
机器人零零壹1 天前
非标自动化设计入门篇:iRobotCAM通用多轴建模能力,实现非标机器人自动化装配应用
机器人·自动化·机器人仿真·虚拟调试·非标自动化
机器人零零壹1 天前
机器人自动化检测入门篇:如何利用iRobotCAM与工业机器人实现产品质量自动化检测
机器人·自动化·机器人仿真·离线编程·irobotcam·机器人检测
测试19981 天前
从登录测试谈测试用例
自动化测试·软件测试·功能测试·测试工具·测试用例·性能测试·安全性测试