Selenium Grid 2在Windows上设置

ids*_*web 7 selenium-grid selenium-webdriver

我在Windows 7上设置了Selenium Grid 2(selenium-server-standalone-2.1.0)(我也尝试过Windows Server 2008)64位.我在本地测试WebDriver,一切都很顺利.

我用以下方式启动集线器:

java -jar selenium-server-standalone-2.1.0.jar -role hub

为FireFox添加webDriver节点可以正常工作,但Google Chrome等其他任何内容都会引发IllegalOperation异常.

例如:

我尝试为Chrome添加节点:

java -jar selenium-server-standalone-2.1.0.jar -role webDriver -hub http://127.0.0.1:4444 -browser browserName = chrome platform = windows version = 12 -port 5556

当您转到http:// localhost:4444/grid/console时,这将显示为集线器上的节点

我添加代码来调用webDriver,例如:

            DesiredCapabilities capability = new DesiredCapabilities();
            capability.SetCapability(CapabilityType.Platform, "windows");
            capability.SetCapability(CapabilityType.Version, "12");
            capability.SetCapability(CapabilityType.BrowserName, "chrome");

            IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"), capability);
Run Code Online (Sandbox Code Playgroud)

我几乎立即得到一个例外:

{"找不到:{platform = windows,browserName = chrome,version = 12}"}

似乎甚至没有找到节点.我是新手,这是我在设置中遗漏的东西?(Internet Explorer也是如此,不断变化的版本似乎没有帮助).

我已经搜索了几个小时和几个小时但没有任何匹配异常的东西似乎与我的问题一样通用.

ids*_*web 2

IllegalOperation 异常 {"cannot find : {platform=windows, browserName... 是由于没有匹配功能引起的(它永远不会到达节点)。

如果我在启动明确声明平台和浏览器的节点时使用配置文件,例如:

{
"capabilities":
        [
                {
                        "browserName":"firefox",
                        "maxInstances":1
                },
                {
                        "browserName":"chrome",
            "platform":"WINDOWS",
                        "maxInstances":1
                },
                {
                        "browserName":"internet explorer",
                        "version":"9",
                        "platform":"WINDOWS",
                        "maxInstances":1
                }
        ],
"configuration":
        {
                "cleanUpCycle":2000,
                "timeout":30000,
                "proxy":"org.openqa.grid.selenium.proxy.WebDriverRemoteProxy",
                "maxSession":5,
                "url":"http://[myIP]/wd/hub",

        }
}
Run Code Online (Sandbox Code Playgroud)

并使用以下行启动集线器:
java -jar selenium-server-standalone-2.2.0.jar -role webdriver -nodeConfig myconfig.json -hub http://[myIP]:4444/grid/register

并创建如下功能:

DesiredCapabilities capability = new DesiredCapabilities();
capability.SetCapability(CapabilityType.Platform, "WINDOWS");
capability.SetCapability(CapabilityType.BrowserName, "internet explorer");
Run Code Online (Sandbox Code Playgroud)

然后测试就可以了(顺便说一句,你必须将 IE 中的所有区域设置为受保护)。
注意,我确实注意到 Windows 是大写的,就像 WINDOWS 中一样,否则您会收到错误消息。