SessionNotCreatedException:无法创建新服务:在Ubuntu上使用Selenium Grid的GeckoDriverService无法驱动Firefox

我无法使用geckodriver从Selenium驱动Firefox。 这很奇怪,因为chrome使用相同的框架驱动而没有错误!

这些是我的版本号:

Firefox 54.0 (64-bit) Chrome Version 62.0.3202.94 (Official Build) (64-bit) selenium-server-standalone-3.7.1.jar client-combined-3.5.3-nodeps.jar geckodriver-v0.19.1-linux64 chromedriver_linux64 Ubuntu 16.10 

我从Selenium webdriver获得的错误如下:

 --------------------------------Error: leder@leder-VirtualBox:~/Source/SeleniumCheese/bin$ ./execute_grid.sh Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create new service: GeckoDriverService Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z' System info: host: 'leder-VirtualBox', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.8.0-59-generic', java.version: '1.8.0_131' Driver info: driver.version: unknown Command duration or timeout: 1.39 seconds ---------------------------------Schnapp 

这是我的设置,其中firefox被破坏并且chrome正常:

Grid_SetUp.java

 package de.auticon.selenium_server; import org.openqa.selenium.WebDriver; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import java.net.MalformedURLException; import java.net.URL; public class Grid_SetUp { public static WebDriver driver; public static void main(String[] args) throws MalformedURLException, InterruptedException{ System.setProperty("webdriver.chrome.driver","/opt/selenium/chromedriver"); String URL = "http://www.google.de"; String Node = "http://192.168.40.40:4444/wd/hub"; DesiredCapabilities cap = DesiredCapabilities.firefox(); driver = new RemoteWebDriver(new URL(Node), cap); driver.navigate().to(URL); WebElement element = driver.findElement(By.name("q")); //Enter something to search for element.sendKeys("Cheese!"); // Now submit the form. WebDriver will find the form for us from the element element.submit(); // Check the title of the page System.out.println("Page title is: " + driver.getTitle()); Thread.sleep(5000); driver.quit(); } } 

selenium_grid.sh:

 #!/bin/bash java -jar /opt/selenium/selenium-server-standalone-3.7.1.jar -role hub & java -Dwebdriver.gecko.driver=/opt/selenium/geckodriver -jar /opt/selenium/selenium-server-standalone-3.7.1.jar -role webdriver -hub http://192.168.40.40:4444/grid/register -nodeConfig /opt/selenium/defaultNodeConfig.json -browser "browserName=firefox,platform=LINUX" & 

execute_grid.sh:

 #!/bin/bash java -cp ".:/opt/selenium/selenium-server-standalone-3.7.1.jar" de.auticon.selenium_server.Grid_SetUp 

我现在更新了有关工作配置的问题。 但是当运行firefox Selenium TC时,TC完成,不幸的是服务器以错误消息“session not created”结束:

 13:49:10.376 INFO - Removing session org.openqa.selenium.remote.server.ServicedSession@70c81601 13:49:10.381 INFO - To downstream: {"value":{"error":"session not created","message":"Tried to run command without establishing a connection","stacktrace":"stack backtrace:\n 0: 0x4edb3c - backtrace::backtrace::trace::hc4bd56a2f176de7e\n 1: 0x4edb72 - backtrace::capture::Backtrace::new::he3b2a15d39027c46\n 2: 0x4409a1 - webdriver::error::WebDriverError::new::h81babdd86c977032\n 3: 0x4280ea - <webdriver::server::Dispatcher>::run::h2119c674d7b88193\n 4: 0x4029b9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h21d98a9ff86d4c25\n 5: 0x40be65 - std::panicking::try::do_call::h5cff0c9b18cfdbba\n 6: 0x5e6a6c - panic_unwind::__rust_maybe_catch_panic\n at /checkout/src/libpanic_unwind/lib.rs:99\n 7: 0x41eb22 - <F as alloc::boxed::FnBox>::call_box::h413eb1d9d9f1c473\n 8: 0x5df13b - alloc::boxed::{{impl}}::call_once\n at /checkout/src/liballoc/boxed.rs:692\n - std::sys_common::thread::start_thread\n at /checkout/src/libstd/sys_common/thread.rs:21\n - std::sys::imp::thread::{{impl}}::new::thread_start\n at /checkout/src/libstd/sys/unix/thread.rs:84"}} 

关于Selenium Grid配置的几句话:

  • 您提到您的Test Bedselenium-server-standalone-3.7.1.jarclient-combined-3.5.3-nodeps.jar 。 根据Best Practices ,您应该使用以下任何一种,而不是两者

  • 始终尝试使用最新发布的版本,即selenium-server-standalone-3.7.1.jar

  • selenium_grid.sh:您需要更改以下内容:

     java -Dwebdriver.gecko.driver=/opt/selenium/geckodriver