不同浏览器的 WebDriver 安装与初始化
接下来我们将学习如何为不同浏览器安装驱动程序,并使用它们来创建 WebDriver 会话。
开始之前
大多数 WebDriver 实现都需要一个额外的可执行文件,以便 Selenium 能够与浏览器通信。
我们可以在启动 WebDriver 会话之前手动添加该可执行文件,但这会使框架的可移植性降低,因为这些可执行文件依赖于平台,并且需要在每台机器上的相同位置,或者将它们随框架一起打包。
通过将驱动程序添加到系统类路径中,Selenium 就能够在不将驱动程序与框架捆绑的情况下找到这些可执行文件。
下载与安装 WebDriver
下载 WebDriver 驱动程序
以下是不同浏览器驱动程序的下载地址:
Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads
Firefox: https://github.com/mozilla/geckodriver
Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Internet Explorer: https://selenium-release.storage.googleapis.com/index.html
Opera: https://github.com/operasoftware/operachromiumdriver/releases
将 WebDriver 添加到类路径
Windows
1setx /m path "%path%;C:\selenium-drivers\bin"
Linux/Macintosh
1sudo mkdir -p $HOME/selenium-drivers 2 3export PATH=$PATH:$HOME/selenium-drivers >> ~/.profile
设置驱动路径并创建 WebDriver 实例
可以显式设置驱动路径,使用以下代码创建不同浏览器的 WebDriver 实例。
Chrome 驱动
1import org.openqa.selenium.chrome.ChromeDriver; 2import org.openqa.selenium.chrome.ChromeDriverService; 3import org.openqa.selenium.WebDriver; 4 5// 如果驱动已在类路径中,可省略 `executable_path` 6System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "/path/to/chromedriver"); 7 8WebDriver driver = new ChromeDriver();
Firefox 驱动
1import org.openqa.selenium.WebDriver; 2import org.openqa.selenium.firefox.FirefoxDriver; 3import org.openqa.selenium.firefox.GeckoDriverService; 4 5// 如果驱动已在类路径中,可省略 `executable_path` 6System.setProperty(GeckoDriverService.GECKO_DRIVER_EXE_PROPERTY, "/path/to/geckodriver"); 7 8WebDriver driver = new FirefoxDriver();
Edge 驱动
1import org.openqa.selenium.WebDriver; 2import org.openqa.selenium.edge.EdgeDriver; 3import org.openqa.selenium.edge.EdgeDriverService; 4 5System.setProperty(EdgeDriverService.EDGE_DRIVER_EXE_PROPERTY, "/path/to/MicrosoftWebDriver.exe"); 6 7WebDriver driver = new EdgeDriver();
Internet Explorer 驱动
1import org.openqa.selenium.WebDriver; 2import org.openqa.selenium.ie.InternetExplorerDriver; 3import org.openqa.selenium.ie.InternetExplorerDriverService; 4 5System.setProperty(InternetExplorerDriverService.IE_DRIVER_EXE_PROPERTY, "/path/to/IEDriver.exe"); 6 7WebDriver driver = new InternetExplorerDriver();
Opera 驱动
1import org.openqa.selenium.WebDriver; 2import org.openqa.selenium.opera.OperaDriver; 3import org.openqa.selenium.opera.OperaDriverService; 4 5System.setProperty(OperaDriverService.OPERA_DRIVER_EXE_PROPERTY, "/path/to/operadriver"); 6 7WebDriver driver = new OperaDriver();
Safari 驱动
与其他浏览器不同,Safari 不需要任何可执行文件。相反,需要启用 Safari 的自动化控制。具体步骤如下:
macOS High Sierra 及更高版本
运行一次 safaridriver --enable。
macOS Sierra 及更早版本
如果尚未启用,需先显示“开发”菜单。
打开 Safari 浏览器 ➙ 偏好设置,在“高级”选项卡中勾选 “在菜单栏中显示开发菜单”。
进入 开发 ➙ 允许远程自动化。
授权 SafariDriver 启动托管本地 Web 服务器的 XPC 服务。为此,手动运行一次 /usr/bin/safaridriver,并按照认证提示操作。
1import org.openqa.selenium.WebDriver; 2import org.openqa.selenium.safari.SafariDriver; 3 4WebDriver driver = new SafariDriver();
Safari 已不再支持 Windows 系统,因此作为自动化平台的选择并不理想。
在一台机器上安装好 WebDriver 后,下一步是学习如何配置特定浏览器实例。请参阅下一课了解具体操作方法。