在 Selenium 3 中启动 Firefox ThreadLocal 驱动程序 - Java
Start Firefox ThreadLocal Driver In Selenium 3 - Java
我刚刚更新到 Selenium 3.0.0-beta3 并尝试在 Firefox 45 中执行测试。
我已经下载了 geckodriver.exe 的 v.10 并将其添加到我的 PATH 环境变量中。我还在 geckodriver 的代码中设置系统 属性 就像我在使用 Chrome 驱动程序时所做的那样,它工作得很好,但是,我仍然得到以下 TestNG 消息:
org.openqa.selenium.WebDriverException: The path to the driver
executable must be set by the webdriver.gecko.driver system property;
for more information, see https://github.com/mozilla/geckodriver. The
latest version can be downloaded from
https://github.com/mozilla/geckodriver/releases Command duration or
timeout: 411 milliseconds Build info: version: '2.52.0', revision:
'4c2593cfc3689a7fcd7be52549167e5ccc93ad28', time: '2016-02-11
11:22:43' System info: host: 'VMP-2316', ip: '10.80.50.100', os.name:
'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version:
'1.8.0_92' Driver info: org.openqa.selenium.remote.RemoteWebDriver
这是我用来设置驱动程序的代码:
// Set Driver
threadDriver = new ThreadLocal<RemoteWebDriver>();
DesiredCapabilities dc = new DesiredCapabilities();
System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");
dc.setBrowserName(DesiredCapabilities.firefox().getBrowserName());
dc.setCapability("marionette", true);
threadDriver.set(new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), dc));
另一种方法是在启动 server/node:
的命令行中定义驱动程序的路径
java -Dwebdriver.gecko.driver=path/to/geckodriver.exe -jar selenium-server-standalone-3.0.0-beta3.jar
我猜您正在 运行 对网格进行测试。
当针对网格进行 运行 测试时,涉及三台机器。
- Machine_A - 这是测试用例将被分离出来执行的地方
- Machine_B - 这是网格中心 运行ning 的位置。
- Machine_C - 这是网格节点 运行ning 和浏览器将要打开的机器。
在您的情况下,您需要确保 Machine_C 具有
- PATH 变量中可用的 geckodriver 二进制文件(或)
- geckodriver 二进制路径通过 JVM 参数通知 selenium 节点
-Dwebdriver.gecko.driver
(如 Florent 所述)
声明 System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");
将对 Machine_A 而不是 Machine_C 产生影响(它真正应该作用于的地方)。
希望对您有所帮助!
我刚刚更新到 Selenium 3.0.0-beta3 并尝试在 Firefox 45 中执行测试。
我已经下载了 geckodriver.exe 的 v.10 并将其添加到我的 PATH 环境变量中。我还在 geckodriver 的代码中设置系统 属性 就像我在使用 Chrome 驱动程序时所做的那样,它工作得很好,但是,我仍然得到以下 TestNG 消息:
org.openqa.selenium.WebDriverException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases Command duration or timeout: 411 milliseconds Build info: version: '2.52.0', revision: '4c2593cfc3689a7fcd7be52549167e5ccc93ad28', time: '2016-02-11 11:22:43' System info: host: 'VMP-2316', ip: '10.80.50.100', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_92' Driver info: org.openqa.selenium.remote.RemoteWebDriver
这是我用来设置驱动程序的代码:
// Set Driver
threadDriver = new ThreadLocal<RemoteWebDriver>();
DesiredCapabilities dc = new DesiredCapabilities();
System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");
dc.setBrowserName(DesiredCapabilities.firefox().getBrowserName());
dc.setCapability("marionette", true);
threadDriver.set(new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), dc));
另一种方法是在启动 server/node:
的命令行中定义驱动程序的路径java -Dwebdriver.gecko.driver=path/to/geckodriver.exe -jar selenium-server-standalone-3.0.0-beta3.jar
我猜您正在 运行 对网格进行测试。 当针对网格进行 运行 测试时,涉及三台机器。
- Machine_A - 这是测试用例将被分离出来执行的地方
- Machine_B - 这是网格中心 运行ning 的位置。
- Machine_C - 这是网格节点 运行ning 和浏览器将要打开的机器。
在您的情况下,您需要确保 Machine_C 具有
- PATH 变量中可用的 geckodriver 二进制文件(或)
- geckodriver 二进制路径通过 JVM 参数通知 selenium 节点
-Dwebdriver.gecko.driver
(如 Florent 所述)
声明 System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");
将对 Machine_A 而不是 Machine_C 产生影响(它真正应该作用于的地方)。
希望对您有所帮助!