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

相关推荐
小小测试开发7 小时前
JMeter 自动化实战:自动生成文件并传参接口的完整方案
运维·jmeter·自动化
北京耐用通信8 小时前
从‘卡壳’到‘丝滑’:耐达讯自动化PROFIBUS光纤模块如何让RFID读写器实现‘零延迟’物流追踪?”
网络·人工智能·科技·物联网·网络协议·自动化
tryCbest9 小时前
Selenium中XPath定位元素详细教程
selenium·测试工具
tryCbest9 小时前
Selenium中设置Edge浏览器
selenium·测试工具·edge
Derrick__110 小时前
Selenium的使用
selenium·测试工具
caijingshiye13 小时前
九科信息企业自动化智能体:打破知行割裂,让AI真正动手干活
运维·人工智能·自动化
ThreeAu.20 小时前
测开高频面试题集锦 | 项目测试& 接口测试&自动化
面试·自动化·测试开发工程师
一晌小贪欢20 小时前
Python键盘鼠标自动化库详解:从入门到精通
python·自动化·计算机外设·python鼠标·python键盘·python操控鼠标·python操控键盘
初学者_xuan21 小时前
零基础新手小白快速了解掌握服务集群与自动化运维(十八)Ansible自动化模块--安装与入门
运维·自动化·ansible
想要打 Acm 的小周同学呀21 小时前
爬虫相关的面试问题
爬虫·selenium·职场和发展