无法使用最新的selenium服务器和geckodriver创建新的远程会话

时间:2017-05-12 12:41:01

标签: selenium selenium-webdriver geckodriver

我使用的是3.4版本的最新selenium独立版本和v0.16.1版本的最新geckodriver。我无法开始新的远程会话。

我总是得到:

Unable to create new remote session. desired capabilities = Capabilities [{browserName=firefox, moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=org.openqa.selenium.firefox.FirefoxProfile@6b994b98}, platform=ANY, firefox_profile=org.openqa.selenium.firefox.FirefoxProfile@6b994b98}], required capabilities = Capabilities [{moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=org.openqa.selenium.firefox.FirefoxProfile@6b994b98}, firefox_profile=org.openqa.selenium.firefox.FirefoxProfile@6b994b98}]
Build info: version: '3.3.1', revision: '5234b32', time: '2017-03-10 09:04:52 -0800'
System info: host: '71001A2', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.8.0-49-generic', java.version: '1.8.0_131'
Driver info: driver.version: FirefoxDriver

这两个软件不兼容吗?

我在ubuntu linux上使用最新的firefox(53.0.2(64位))。

我像这样独立启动selenium:

sudo java -jar -Dwebdriver.gecko.driver=/opt/Selenium/webdrivers/geckodrive‌​r selenium-server-standalone-3.4.0.jar

更新:系统重启后,一切正常。

1 个答案:

答案 0 :(得分:1)

我使用的是Firefox 53.0.2和geckodriver v0.16.1,并设法在远程Windows VM上运行测试,如下所示 - 我在两台计算机上的同一路径中都有我的geckodriver.exe(只是为了安全起见,但只要在远程VM上启动节点时指定正确的路径就可以正常工作)

在我的测试中,我使用他的代码初始化驱动程序:

public class SeleniumGrid_ParallelTest {
    private WebDriver driver;
    private String baseUrl;
    private String geckoPath = "C:\Selenium\geckodriver.exe";
    private String nodeURL;

@BeforeClass
public void beforeClass() throws MalformedURLException {
    //  FOR FF 53.0.2
    System.setProperty("webdriver.gecko.driver", geckoPath);
    baseUrl = "https://www.google.com/";
    nodeURL = "http://192.168.75.128:5555/wd/hub"; // Remote VM IP address and port
    DesiredCapabilities caps = DesiredCapabilities.firefox();
    caps.setBrowserName("firefox");
    caps.setPlatform(Platform.WINDOWS);
    driver = new RemoteWebDriver(new URL(nodeURL), caps);

//    then the rest of the test as normal

在我的中心,我用

开始
java -jar selenium-server-standalone-3.4.0.jar -role hub

在我的远程VM上,我使用以下命令从命令提示符启动节点:

cd C:\Selenium
java -jar -Dwebdriver.gecko.driver=C:\Selenium\geckodriver.exe selenium-server-standalone-3.4.0.jar -role node -hub http://<hub name or IP>:4444/grid/register -port 5555 -browser browserName=firefox,version=58.0.3029.110,maxInstances=2,platform=WINDOWS

通过Eclipse从我的集线器(我的笔记本电脑)运行测试并切换到远程VM。假设你已经安装了Firefox,测试将在远程VM上运行OK,正常情况下在你的PC上创建日志。