如何使用Selenium 3设置Selenium Grid

时间:2016-09-15 06:35:47

标签: selenium

以下是我有例外情况的详细信息:

当我使用下面的命令启动节点时,它会给出如下错误:

F:\SeleniumGrid\Jars>java -jar selenium-server-standalone-3.0.0-beta2.jar -role webdriver -hub http://HubIpAddress:4444/grid/register -browser browserName=”firefox”, version=ANY, platform=VISTA, maxInstances=5 -Dwebdriver.gecko.driver.exe
线程“main”中的异常com.beust.jcommander.ParameterException:传递了主参数'version = ANY',但没有主参数     被定义了     在com.beust.jcommander.JCommander.getMainParameter(JCommander.java:914)     在com.beust.jcommander.JCommander.parseValues(JCommander.java:759)     在com.beust.jcommander.JCommander.parse(JCommander.java:282)     在com.beust.jcommander.JCommander.parse(JCommander.java:265)     在com.beust.jcommander.JCommander。(JCommander.java:210)     在org.openqa.grid.selenium.GridLauncherV3 $ 3.setConfiguration(GridLauncherV3.java:231)     在org.openqa.grid.selenium.GridLauncherV3.buildLauncher(GridLauncherV3.java:130)     在org.openqa.grid.selenium.GridLauncherV3.main(GridLauncherV3.java:67)

如果上述命令出错,请告诉我。

以下是使用的java代码:

package com.test.grid;

import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;


public class SelGrid {




    WebDriver driver;
    String baseUrl, nodeURL, hubURL;
    @BeforeTest
    public void setUp() throws MalformedURLException {

    baseUrl = "https://www.google.co.in/";
    hubURL = "http://HubIpAddress:4444/wd/hub";

    DesiredCapabilities capability = DesiredCapabilities.firefox();
    capability.setBrowserName("firefox");
    capability.setPlatform(Platform.VISTA);


    driver = new RemoteWebDriver (new URL(hubURL), capability);

    }

    @AfterTest
    public void afterTest()
    {
        driver.quit();
    }

    @Test
    public void simpleTest()
    {
        driver.get(baseUrl);
        Assert.assertEquals("Welcome: Mercury Tours", driver.getTitle());
    }

}

3 个答案:

答案 0 :(得分:1)

您需要更改在Selenium 3中调用-Dwebdriver参数的顺序。为避免此问题,请确保-Dwebdriver始终位于-jar调用之前。您需要在nodeConfig.json中添加集线器注册和节点配置。

F:\SeleniumGrid\Jars>java -Dwebdriver.gecko.driver.exe -jar selenium-server-standalone-3.0.0-beta2.jar -role node -nodeConfig nodeConfig.json

示例nodeConfig

{
  "capabilities":
  [
    {
      "browserName": "firefox",
      "maxInstances": 5,
      "seleniumProtocol": "WebDriver"
    },
    {
      "browserName": "chrome",
      "maxInstances": 5,
      "seleniumProtocol": "WebDriver"
    },
    {
      "browserName": "internet explorer",
      "maxInstances": 1,
      "seleniumProtocol": "WebDriver"
    }
  ],
  "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
  "maxSession": 5,
  "port": 5555,
  "register": true,
  "registerCycle": 5000,
  "hub": "http://localhost:4444",
  "nodeStatusCheckTimeout": 5000,
  "nodePolling": 5000,
  "role": "node",
  "unregisterIfStillDownAfter": 60000,
  "downPollingLimit": 2,
  "debug": false,
  "servlets" : [],
  "withoutServlets": [],
  "custom": {}
}

来源: http://jjtheengineer.blogspot.com/2016/12/selenium-grid-30-setup-migrating-from.html

答案 1 :(得分:0)

很少有可能解决您问题的事情:

  1. 从selenium 3你必须使用geckodriver驱动程序才能使用firefox。您需要下载geckodriver driver。在代码内部添加(在功能部分内):

             capabilities.setCapability("marionette", true);
    
  2. 将节点注册到集线器时,请按以下方式使用以下内容:

    java -jar selenium-server-standalone-3.0.1.jar -role node -hub http://HubIpAddress:4444/grid/register -browser browserName =“firefox”,version = ANY,platform = VISTA,maxInstances = 5

答案 2 :(得分:-1)

我多次在网格上工作,我遇到了与Beta版相同的问题。您可以尝试使用Selenium 2.53.1或任何其他先前版本。

http://learn-automation.com/selenium-grid-for-remote-execution/