前言
「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」 一想到实现UI自动化,我们就会想到selenium,这个是大家用到最广泛的一个自动化工具,关于它是怎么控制主流浏览器chrome, firefox等来实现各种操作,最重要的是通过webdriver
webdriver 入门
webdriver是一套API和协议集合,定义了一个语言中立的接口,用于控制浏览器的行为。每一个浏览器都有一个特定的webdriver实现(这也是我们去控制浏览器的时候,需要安装对应浏览器的驱动,例如chrome要安装chromedriver, 火狐浏览器要安装geckodriver),这个被称为驱动程序,驱动程序是负责委派给浏览器的组件,并处理与selenium和浏览器之间的通信。
为你喜爱的编程语言安装selenium 类库
selenium支持以下语言
- java 安装
可以使用 Maven 安装 Java 的 Selenium 库。 在项目 pom.xml 中添加 selenium-java 依赖项:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.X</version>
</dependency>
- python 安装
可以使用 pip 安装 Python 的 Selenium 库:
pip install selenium
- js 安装 可以使用 npm 安装 JavaScript 的 Selenium 库
npm install selenium-webdriver
安装浏览器驱动
设置浏览器用于自动化, 通过webdriver,selenium支持市场上所有主流浏览器,webdriver尽量使用浏览器自己内置的自动化支持来驱动浏览器。
浏览器驱动下载,浏览器驱动的版本要和浏览器的版本保持一致
| 浏览器 | 支持的操作系统 | 维护者 | 下载 | 问题追溯 |
|---|---|---|---|---|
| Chromium/Chrome | Windows/macOS/Linux | 下载 | Issues | |
| Firefox | Windows/macOS/Linux | Mozilla | 下载 | Issues |
| Edge | Windows/macOS | Microsoft | 下载 | Issues |
| Internet Explorer | Windows | Selenium Project | 下载 | Issues |
| Safari | macOS High Sierra and newer | Apple | 内置 | Issues |
使用驱动
1.通过驱动管理软件
因为大多数浏览器会自动更新,但驱动程序不会,为了确保为浏览器提供正确的驱动,可以使用驱动管理软件 以python为例 首先安装驱动管理库
pip install webdriver-manager
以chrome为例
# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
2.通过设置环境变量---这是我们最常用的方式 我一般把浏览器的驱动放到python的安装目录下, 只要设置好python的环境变量就可以了
当然也可以放置其他位置,然后重新为它创建一个环境变量
在windows环境的命令行窗口下:
To see what directories are already on PATH, open a Command Prompt and execute:
echo %PATH%
If the location to your driver is not already in a directory listed, you can add a new directory to PATH:
setx PATH "%PATH%;C:\WebDriver\bin"
You can test if it has been added correctly by starting the driver:
chromedriver.exe
3.最糟糕的方式,在代码中加载指定全路径
service = Service(executable_path="/path/to/chromedriver")
driver = webdriver.Chrome(service=service)