带你了解selenium webdriver的使用

779 阅读2分钟

前言

「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」 一想到实现UI自动化,我们就会想到selenium,这个是大家用到最广泛的一个自动化工具,关于它是怎么控制主流浏览器chrome, firefox等来实现各种操作,最重要的是通过webdriver

webdriver 入门

webdriver是一套API和协议集合,定义了一个语言中立的接口,用于控制浏览器的行为。每一个浏览器都有一个特定的webdriver实现(这也是我们去控制浏览器的时候,需要安装对应浏览器的驱动,例如chrome要安装chromedriver, 火狐浏览器要安装geckodriver),这个被称为驱动程序,驱动程序是负责委派给浏览器的组件,并处理与selenium和浏览器之间的通信。

为你喜爱的编程语言安装selenium 类库

selenium支持以下语言

图片.png

  1. java 安装

可以使用 Maven 安装 Java 的 Selenium 库。 在项目 pom.xml 中添加 selenium-java 依赖项:

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-java</artifactId>
  <version>4.X</version>
</dependency>
  1. python 安装

可以使用 pip 安装 Python 的 Selenium 库:

pip install selenium
  1. js 安装 可以使用 npm 安装 JavaScript 的 Selenium 库
npm install selenium-webdriver

安装浏览器驱动

设置浏览器用于自动化, 通过webdriver,selenium支持市场上所有主流浏览器,webdriver尽量使用浏览器自己内置的自动化支持来驱动浏览器。

浏览器驱动下载,浏览器驱动的版本要和浏览器的版本保持一致

浏览器支持的操作系统维护者下载问题追溯
Chromium/ChromeWindows/macOS/LinuxGoogle下载Issues
FirefoxWindows/macOS/LinuxMozilla下载Issues
EdgeWindows/macOSMicrosoft下载Issues
Internet ExplorerWindowsSelenium Project下载Issues
SafarimacOS High Sierra and newerApple内置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的环境变量就可以了

图片.png

当然也可以放置其他位置,然后重新为它创建一个环境变量 在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

图片.png

3.最糟糕的方式,在代码中加载指定全路径

service = Service(executable_path="/path/to/chromedriver")
driver = webdriver.Chrome(service=service)