Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Selenium 3-Java中启动Firefox线程本地驱动程序_Java_Selenium_Firefox_Selenium Grid - Fatal编程技术网

在Selenium 3-Java中启动Firefox线程本地驱动程序

在Selenium 3-Java中启动Firefox线程本地驱动程序,java,selenium,firefox,selenium-grid,Java,Selenium,Firefox,Selenium Grid,我刚刚更新到Selenium 3.0.0-beta3,并尝试在Firefox45中执行测试 我已经下载了geckodriver.exe的v.10,并将其添加到我的PATH环境变量中。我还在geckodriver的代码中设置system属性,就像我使用Chrome驱动程序时一样,它工作得非常好,但是,我仍然会得到以下TestNG消息: org.openqa.selenium.WebDriverException:驱动程序的路径 可执行文件必须由webdriver.gecko.driver系统属性设

我刚刚更新到Selenium 3.0.0-beta3,并尝试在Firefox45中执行测试

我已经下载了geckodriver.exe的v.10,并将其添加到我的PATH环境变量中。我还在geckodriver的代码中设置system属性,就像我使用Chrome驱动程序时一样,它工作得非常好,但是,我仍然会得到以下TestNG消息:

org.openqa.selenium.WebDriverException:驱动程序的路径 可执行文件必须由webdriver.gecko.driver系统属性设置; 有关详细信息,请参阅。这个 最新版本可从 命令持续时间或 超时:411毫秒生成信息:版本:“2.52.0”,版本: “4c2593cfc3689a7fcd7be52549167e5ccc93ad28”,时间:2016-02-11 11:22:43“系统信息:主机:'VMP-2316',ip:'10.80.50.100',操作系统名称: 'Windows 10',os.arch:'amd64',os.version:'10.0',java.version: “1.8.0_92”驱动程序信息: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));
//设置驱动程序
threadDriver=新的ThreadLocal();
DesiredCapabilities dc=新的DesiredCapabilities();
System.setProperty(“webdriver.gecko.driver”、“path/to/geckodriver.exe”);
setBrowserName(DesiredCapabilities.firefox().getBrowserName());
dc.设定能力(“木偶”,真实);
threadDriver.set(新的RemoteWebDriver(新的URL)(“http://localhost:4444/wd/hub),;

另一种方法是在启动服务器/节点的命令行中定义驱动程序的路径:

java -Dwebdriver.gecko.driver=path/to/geckodriver.exe -jar selenium-server-standalone-3.0.0-beta3.jar

我猜您正在网格上运行测试。 在网格上运行测试时,涉及三台机器

  • Machine_A-这是测试用例将被分离出来执行的地方
  • 机器B-这是电网集线器运行的地方
  • Machine_C-这是网格节点运行的地方,也是浏览器打开的地方
  • 在您的情况下,您需要确保机器C

  • 路径变量(或)中可用的geckodriver二进制文件
  • geckodriver二进制路径通过JVM参数
    -Dwebdriver.gecko.driver
    通知selenium节点(如Florent所述)
  • 语句
    System.setProperty(“webdriver.gecko.driver”,“path/to/geckodriver.exe”)将对机器_A产生影响,而不是对机器_C(它真正应该作用的地方)产生影响

    希望有帮助