Selenium4介绍及环境准备
简介
selenium 是一个广泛使用的自动化测试工具,主要用于 Web 应用程序的自动化测试。官方文档。
Selenium 支持多种编程语言(如 Java、Python、C#、Ruby、JavaScript 等),并允许用户控制浏览器执行自动化任务,例如点击按钮、填写表单、验证页面内容等。
Selenium 可以在多种浏览器(如 Chrome、Firefox、Edge、Safari 等)和操作系统(如 Windows、macOS、Linux)上运行。
备注:该文档主要介绍python下使用selenium4。
特点
- 跨浏览器支持:Selenium 支持多种主流浏览器,如 Chrome、Firefox、Safari、Internet Explorer 等,可以在不同浏览器中执行相同的测试脚本。
- 多语言支持:Selenium 支持多种编程语言,开发者可以用自己熟悉的语言来编写测试脚本。
- 灵活性:Selenium 可以与各种测试框架结合使用,如 TestNG、JUnit、PyTest 等,提供了丰富的测试功能。
- 与 CI/CD 集成:Selenium 可以与 Jenkins 等持续集成工具集成,帮助实现自动化测试和持续交付。
- 自动化Web交互:Selenium 可以模拟真实用户的操作,如点击、滚动、键盘输入等,以实现web自动化(无焦点状态依然执行)
组成部分
Selenium 由多个组件组成,每个组件都有其特定的用途。以下是 Selenium 的主要组件:
- Selenium WebDriver:这是 Selenium的核心组件,用于直接与浏览器进行交互。WebDriver 提供了丰富的 API,允许开发者通过代码控制浏览器的行为,如打开网页、点击按钮、填写表单等。
- Selenium IDE:这是一个浏览器插件,主要用于录制和回放用户的操作。Selenium IDE适合初学者快速创建简单的测试脚本,但它不支持复杂的逻辑和条件判断。
- Selenium Grid:这是一个用于并行执行测试的工具。通过 Selenium Grid,你可以在多个浏览器和操作系统上同时运行测试,从而加快测试速度并提高测试覆盖率。
应用场景
自动化测试
- 用于 Web 应用程序的功能测试、回归测试、兼容性测试等。
- 可以模拟用户操作,验证页面功能是否正常。
网页抓取
- 用于从网页中提取数据,例如商品信息、新闻内容等。
- 可以处理动态加载的内容(如通过 JavaScript 加载的数据)。
自动化任务
- 用于执行重复性的网页操作,例如自动填写表单、自动登录等。
跨浏览器测试
- 用于验证 Web 应用程序在不同浏览器和操作系统上的兼容性。
局限性
- 无法处理非浏览器操作:Selenium 只能控制浏览器,无法直接操作桌面应用程序或移动应用程序。
- 动态内容处理复杂:对于高度动态的网页(如单页应用),可能需要额外的等待机制或 JavaScript 执行。
- 性能开销:由于需要启动浏览器实例,Selenium 的执行速度相对较慢。
新特性(selenium4.x)
- executable_path已弃用,使用Service 对象来代替。
- Selenium 4 可以自动回收浏览器资源,不需要手动quit()了,像4之前不停止服务会有残留进程,占用内存。
- 定位语法方面,Selenium 4引入了新的定位方法,使用By类来替代之前的 find_element_by系列方法。
- 放弃了无头浏览器PhantomJS,目前的 chrome,firefox 都是支持无头浏览器。
注意:使用Selenium4要求是Python版本为3.7或者更高。
环境准备
安装selenium
# 通过pip安装
pip install selenium
# Python3,可能需要使用 pip3
pip3 install selenium
# 检查 Selenium 是否安装成功
pip show selenium
如果显示了 Selenium 的版本信息,说明安装成功。
下载浏览器驱动
Selenium 需要通过浏览器驱动来控制浏览器,不同的浏览器需要不同的驱动。
-
Firefox驱动下载地址:GeckoDriver。
-
Chrome驱动下载地址:ChromeDriver。
-
Edge驱动下载地址:EdgeDriver。
-
Edge的 IE 模式驱动下载地址:IEDriverServer。
下载驱动的版本要和你浏览器的版本对应,否则失效。
然后把它粘贴在与python.exe同一个目录下(如下图)。
