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 自动化和其它技术。

相关推荐
云飞云共享云桌面14 分钟前
单机建模卡顿运维繁琐!中小型机械制造厂云飞云 3D 云桌面落地
运维·服务器·网络·3d·自动化·电脑·负载均衡
zandy10111 小时前
体验家 XMPlus 批量操作与自动化工作流引擎:让大规模运营从手动执行走向规则驱动
大数据·运维·自动化
Luminbox紫创测控4 小时前
大面积太阳模拟器设计原理与高均匀度辐照实现方法
人工智能·测试工具·安全性测试·测试标准
m0_752035635 小时前
postman重新安装后历史接口数据不见了
测试工具·postman
Web4Browser5 小时前
Headless 浏览器自动化适合哪些任务?巡检、截图和提交动作要分级
运维·前端·自动化
大博士.J5 小时前
视频号主体违规与认证上限?正确的解决方式
运维·python·自动化
程序员小远8 小时前
性能测试之性能调优
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
Chengbei118 小时前
SoloXSS:一款现代化的自托管 XSS平台
人工智能·安全·web安全·网络安全·自动化·xss·安全架构
xy345318 小时前
Wireshark捕获过滤器——语法元素详解
网络·测试工具·渗透测试·wireshark
BJHHZX199119 小时前
北京华恒智信为制造行业破解自动化伪升级难题,落地人机协作三阶段减编增效方案
自动化·绩效考核·人力资源管理·人机协作·员工激励