一尘不染

为什么Firefox需要GeckoDriver?

c#

我今天有一个简单的问题:

我使用以下代码创建了一个新的selenium项目:

FirefoxDriver driver = new FirefoxDriver();
//ChromeDriver driver = new ChromeDriver();
//InternetExplorerDriver driver = new InternetExplorerDriver();

使用Chrome和IE即可使用,但是使用Firefox时:

geckodriver.exe文件在当前目录或PATH环境变量上的目录中不存在。该驱动程序可以从https://github.com/mozilla/geckodriver/releases下载。

为什么只为Firefox才需要下载/配置该驱动程序?


阅读 570

收藏
2020-05-19

共1个答案

一尘不染

一一解答您的问题:

  1. Firefox为什么需要GeckoDriver? -对于Mozila Firefox直至47.x版,它是旧版浏览器,我们不需要gecko驱动程序。从47.x版开始的Mozila Firefox附带Marionette,后者是Mozilla的Gecko引擎的自动化驱动程序。它可以远程控制Gecko平台(如Firefox)的UI或内部JavaScript。

  2. 使用Chrome和IE即可开箱即用 -理想情况下,Chrome和IE都不应该工作。但是,当您在安装/配置Google Chrome&MS Internet Explorer或其他相关软件时有意/无意地在环境变量中添加了二进制文件的位置时,这些二进制文件很容易被自动定位和使用。

  3. 为什么只为Firefox才需要下载/配置该驱动程序? -不仅是Firefox,而且要使用Selenium 3.4.0的Google Chrome&MS Internet Explorer都需要从该位置或Chrome驱动程序或IEDriverServer 强制下载gecko驱动程序v0.16.0(或更高版本)并将其保存在计算机中。将您的Mozila Firefox或Google Chrome或MS Internet Explorer升级到最新的稳定版本。在代码中使用geckodriver / chromedriver / iedriver的绝对路径,System.setProperty如下所示:

    System.setProperty("webdriver.gecko.driver",  "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
    
2020-05-19