以下是我有例外情况的详细信息:
当我使用下面的命令启动节点时,它会给出如下错误:
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());
}
}
答案 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)
很少有可能解决您问题的事情:
从selenium 3你必须使用geckodriver驱动程序才能使用firefox。您需要下载geckodriver driver。在代码内部添加(在功能部分内):
capabilities.setCapability("marionette", true);
将节点注册到集线器时,请按以下方式使用以下内容:
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/