当前位置: 首页 > news >正文

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

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

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

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

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

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

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

平时使用浏览器时,我们通常会点击浏览器左上角的 [前进] / [后退] 图标,返回到前一个或下一个网页。
在这里插入图片描述
Selenium 也提供了这样的方法 back() 和 forward()

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) 是最常用的打开网页的方式,但是还有另一种方式:

driver.navigate().to("https://www.w3cschool.cn/html/html-form.html");

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

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

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

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” 图标一样。
在这里插入图片描述

driver.close();
6. 关闭浏览器

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

driver.close();

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

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

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

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

http://www.lryc.cn/news/325276.html

相关文章:

  • 二、Kubernetes(k8s)中部署项目wordpress(php博客项目,数据库mysql)
  • linux系统Kubernetes工具Service暴露服务
  • 【算法篇】逐步理解动态规划1(斐波那契数列模型)
  • 软件测试 - postman高级使用
  • 数据交换技术
  • FFmpeg-- mp4文件合成1:aac和h264封装(c++实现)
  • 【嵌入式开发 Linux 常用命令系列 1.3 -- 统计目录下有多少个文件】
  • JMeter 如何并发执行 Python 脚本
  • 第十三届蓝桥杯省赛真题 Java B 组【原卷】
  • Excel 打开后提示:MicrosoftExcel无法计算某个公式。在打开的工作簿中有一个循环引用...
  • 【自我提升】计算机领域相关证书
  • 外包干了15天,技术退步明显。。。。。
  • 人工智能(Educoder)-- 搜索技术 -- 启发式搜索
  • 计算平均分 javascript
  • Redis入门到实战-第三弹
  • AnyGo for Mac最新激活版:位置模拟软件打破地域限制
  • 【Mysql数据库基础07】DDL 数据定义语言
  • 数据库及中表的创建和管理
  • git笔记之撤销、回退、reset方面的笔记
  • 【中间件】docker数据卷
  • 【3D reconstruction 学习笔记 第二部】
  • 【CSP试题回顾】202109-1-数组推导(优化)
  • Redis - 高并发场景下的Redis最佳实践_翻过6座大山
  • 数字乡村发展策略:科技引领农村实现跨越式发展
  • TCP重传机制详解——04FACK
  • 安卓Java面试题 206- 210
  • huggingface的transformers训练bert
  • 计算机三级——网络技术(综合题第五题)
  • C#使用ASP.NET Core Razor Pages构建网站(三)
  • R语言迅速计算多基因评分(PRS)