我今天有一个简单的问题:
我使用以下代码创建了一个新的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才需要下载/配置该驱动程序?
一一解答您的问题:
Firefox为什么需要GeckoDriver? -对于Mozila Firefox直至47.x版,它是旧版浏览器,我们不需要gecko驱动程序。从47.x版开始的Mozila Firefox附带Marionette,后者是Mozilla的Gecko引擎的自动化驱动程序。它可以远程控制Gecko平台(如Firefox)的UI或内部JavaScript。
使用Chrome和IE即可开箱即用 -理想情况下,Chrome和IE都不应该工作。但是,当您在安装/配置Google Chrome&MS Internet Explorer或其他相关软件时有意/无意地在环境变量中添加了二进制文件的位置时,这些二进制文件很容易被自动定位和使用。
为什么只为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
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");