selenium Webdriver驱动程序

通过WebDriver驱动,Selenium支持市场上的所有主流浏览器,如Chrom(ium),Firefox,Internet Explorer,Opera和Safari。

https://www.yiibai.com/uploads/article/2018/10/22/165710_25095.png

 

尽管并非所有浏览器都支持远程控制,但WebDriver尽可能使用浏览器内置的自动化支持来驱动浏览器。

WebDriver的目标是尽可能地模拟真实用户与浏览器的交互。这可以在不同浏览器中

以不同标准进行。有关不同驱动程序特性的更多详细信息,请参阅驱动程序特性

尽管所有驱动程序共享一个面向用户的界面来控制浏览器,但它们设置浏览器会话的方式略有不同。由于许多驱动程序实现由第三方提供,因此它们不包含在标准Selenium模块中。

驱动程序实例化,配置文件管理和各种浏览器特定设置是具有不同要求的参数的示例,具体取决于浏览器。

添加可执行文件(驱动)到PATH

大多数driver需要Selenium的额外可执行文件才能与浏览器通信。可以在启动WebDriver之前手动指定可执行文件的位置,但这样测试的可移植性会很差,因为可执行文件需要位于每台计算机上的相同位置,或者包含在测试代码存储库中。

通过将包含WebDriver二进制文件的文件夹添加到系统的路径中,Selenium将能够找到其他二进制文件,而无需测试代码来定位驱动程序的确切位置。

  • 创建一个目录以放置可执行文件,例如 C:\ WebDriver \ bin或/ opt / WebDriver / bin
  • 将目录添加到PATH:
  • 在Windows上 - 以管理员身份打开命令提示符,并运行以下命令将目录永久添加到计算机上所有用户的环境变量(path)中:

setx /m path "%path%;C:\WebDriver\bin\"

  • 在macOS和Linux上使用Bash用户 - 在终端中:

export PATH=$PATH:/opt/WebDriver/bin >> ~/.profile

  • 您现在可以测试更改了。关闭所有打开的命令提示并打开一个新提示。在上一步中创建的文件夹中键入其中一个二进制文件的名称,例如:

chromedriver

如果您的PATH配置正确,您将看到一些与驱动程序启动相关的输出:

在端口9515上启动ChromeDriver 2.25.426935(820a95b0b81d33e42712f9198c215f703412e1a1)

仅允许本地连接。

​​​​​​​驱动详细参考

Browser

Supported OS

Maintained by

Download

Issue Tracker

Chromium/Chrome

Windows
macOS
Linux

Google

Downloads

Issues

Firefox

Windows
macOS
Linux

Mozilla

Downloads

Issues

Edge

Windows 10

Microsoft

Downloads

Issues

Internet Explorer

Windows

Selenium Project

Downloads

Issues

Safari

macOS El Capitan and newer

Apple

Built in

Issues

Opera

Windows
macOS
Linux

Opera

Downloads

Issues

 

Chromium/Chrome

要驱动Chrome或Chromium,您必须下载 chromedriver 并将其放在系统路径上的文件夹中

当chromedriver配了环境变量时,应该能够从任何目录执行_chromedriver_可执行文件。

执行以下操作实例化Chrome / Chromium会话:

WebDriver driver = new ChromeDriver();

如果未配置环境变量,必须设置chromedriver可执行路径,使用以下语句

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");

Firefox

从Selenium 3开始,Mozilla已经接管了带有geckodriver的Firefox驱动程序。Firefox的新驱动程序称为geckodriver,适用于Firefox 48及更高版本。由于Firefox WebDriver正在开发中,越新的Firefox版本支持越好。

由于geckodriver是启动Firefox的新默认方式,因此可以像Selenium 2一样实例化Firefox:

WebDriver driver = new FirefoxDriver();

如谷歌浏览器驱动一样如果不想在环境变量(path)中设置geckodriver位置,可以使用下面代码设置geckodriver可执行路径

System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");

目前可以通过安装Firefox 47.0.1 或45 ESR 并将所需的marionette功能指定为 false来恢复到较旧的功能更齐全的Firefox驱动程序 。Firefox的后续版本不再兼容。

Edge

Edge是Microsoft最新的浏览器,包含在Windows 10和Server 2016中.Edge的更新与主要Windows更新捆绑在一起,因此需要下载与当前安装的Windows版本号相匹配的二进制文件。该Edge Developer site 包含指向所有可用的二进制文件。可以通过Microsoft引发针对EdgeDriver实现的错误 。如果您希望针对Edge运行测试,但未运行Windows 10,则Microsoft会在Edge Developer站点上为测试人员提供免费的VM 。

WebDriver driver = new EdgeDriver();

如果环境变量(path)中不存在Edge驱动程序,则可以使用以下行设置路径:

System.setProperty("webdriver.edge.driver", "C:\path\to\MicrosoftWebDriver.exe");

IE浏览器

Internet Explorer是Microsoft的默认浏览器,直到Windows 10,尽管它仍然包含在Windows 10中.Internet Explorer驱动程序是唯一的驱动程序Selenium项目旨在支持 Microsoft认为当前的相同版本 。较旧的版本可能有效,但不受支持。

虽然Selenium项目为32位和64位版本的Internet Explorer提供了二进制文件,但Internet Explorer 10和11与64位驱动程序存在一些限制,但使用32位驱动程序仍然可以正常工作。应该注意的是,由于Internet Explorer首选项是根据登录用户的帐户保存的,因此需要进行一些额外的设置

WebDriver driver = new InternetExplorerDriver();

如果路径中不存在Internet Explorer驱动程序,则可以使用以下行设置路径:

System.setProperty("webdriver.ie.driver", "C:\path\to\IEDriver.exe");

Microsoft还为Windows 7和8.1上运行的Internet Explorer 11为提供WebDriver二进制文件。它自2014年以来未基于W3规范的草案版本更新。

Opera

当前版本的Opera基于Chromium引擎构建,现在通过闭源Opera Chromium驱动程序支持WebDriver ,可以将其添加到PATH 或作为系统属性。

实例化驱动程序会话与Firefox和Chromium类似:

WebDriver driver = new OperaDriver();

Safari

            从macOS El Capitan和Sierra上的Safari 10开始,每个版本的浏览器都包含WebDriver支持。要启用支持:

  1. Enable the Developer menu from Safari preferences
  2. Check the Allow Remote Automation option from with the Develop menu
  3. Run

/usr/bin/safaridriver -p 1337

首次从终端输入密码并在提示符下输入密码以授权WebDriver

然后,您可以使用以下命令启动驱动程序

WebDriver driver = new SafariDriver();

模拟浏览器

HtmlUnit

HtmlUnit是一个“用于Java程序的GUI-Less浏览器”。它为HTML文档建模并提供一个API,允许您调用页面,填写表单,点击链接等。它支持JavaScript,能够使用AJAX库,根据所使用的配置模拟Chrome,Firefox或Internet Explorer。它已被移动到一个 新的位置。

PhantomJS

PhantomJS是一款基于Webkit的无头浏览器,虽然版本比Google Chrome或Safari使用的版本要早得多。。虽然历史上一个受欢迎的选择,现在避免使用PhantomJS是明智的。85日以来,该项目一直没有维护 ,因此在网络将继续变化的同时,PhantomJS将不会更新。这是在谷歌宣布能够无头地运行Chrome之后,现在Mozilla的Firefox也提供了这种功能。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值