7

我是 Selenium Web 驱动程序和 Grid 2 的新手。

我正在尝试运行一个测试用例,但它给了我一个例外

线程“主”org.openqa.selenium.WebDriverException 中的异常:转发新会话时出错,找不到:{platform=WINDOWS, browserName=FIREFOX, version=3.6}

我已经使用命令启动了一个节点和集线器

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

java -jar selenium-server-standalone-2.29.0.jar -role node  -hub %grid register%

这两个命令都可以正常工作。

我不确定何时何地需要使用命令行 -browser browserName=firefox,version=3.6,maxInstances=5,platform=WINDOWS

(尝试从Grid 2官方页面配置节点

是不是因为这个?

这是我的代码:

package test;

import java.net.URL;
import java.net.MalformedURLException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

public class Test { 
    public static void main(String[] args) throws MalformedURLException {
        DesiredCapabilities capability = DesiredCapabilities.firefox();
            capability.setBrowserName("FIREFOX");
            capability.setPlatform(org.openqa.selenium.Platform.WINDOWS);
            capability.setVersion("3.6");
    //  capability.setCapability("");
        WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
        //WebDriver driver = new FirefoxDriver();
        driver.get("http://www.google.com"); 

}
}
4

6 回答 6

5

对于注册节点,使用特定的浏览器配置,您必须在命令提示符下使用以下行:

java -jar selenium-server-standalone-2.32.0.jar -role node -hub http://xxx.xxx.xxx.xxx:4444/grid/register -browser browserName=firefox

将xxx替换为实际的ip地址

于 2013-05-29T09:23:22.030 回答
1

我认为这是由于capability.setBrowserName("FIREFOX");

应该capability.setBrowserName("firefox");

于 2013-06-13T23:10:34.087 回答
1

您可以检查 url http://localhost:4444/grid/console,如果 selenium 网格已经启动并运行但需要检查是否有任何节点已注册!!(即检查任何浏览器是否已注册)

如果不是,您需要使用以下命令注册 selenium 节点 java -jar selenium-server-standalone-x.xx.0.jar -role node -hub http://localhost:4444/grid/register

确保机器上安装了 firefox 浏览器,并且路径上存在 geckodriver。

有时,如果您已经使用 docker 容器运行 selenium hub,则需要使用docker kill $(docker ps -q);

如果您正在运行 webdriverio,请检查 docker selenium 容器运行状态。

于 2019-02-17T06:56:45.827 回答
0

我也面临同样的问题。解决了,问题出在端口 4444 上。它被阻止了。因此,为我的系统创建一个全局 IP 并允许端口 4444 对我有用。

于 2014-01-28T05:41:14.843 回答
0

这可能就是它所说的:集线器/硒找不到与请求的功能匹配的东西。

我遇到了这个问题,得到的错误是(格式化后):

java.lang.RuntimeException : org.openqa.selenium.WebDriverException : Error forwarding the new session cannot find : Capabilities[{
        proxy = {
            proxyAutoconfigUrl = null,
            socksUsername = null,
            socksPassword = null,
            autodetect = false,
            httpProxy = xxxxxxxxxxxx.com : 8080,
            proxyType = MANUAL,
            noProxy = xxxxxxxxxxxxx.net,
            ftpProxy = null,
            hCode = 1273131486,
            socksProxy = null,
            class = org.openqa.selenium.Proxy,
            sslProxy = xxxxxxxxxxxxxx.com : 8080
        },
        loggingPrefs = org.openqa.selenium.logging.LoggingPreferences @ 3564e4e9,
        browserName = MicrosoftEdge,
        type = regular,
        version = ,
        platform = ANY
    }
]

结果是我的同事为功能添加了一个新参数(“类型”),而我没有更新配置我的 Selenium 节点的 .json 文件。

于 2016-10-14T14:50:42.150 回答
-1

如果您运行并行测试。增加线程数并增加集线器内存

cat /proc/sys/kernel/threads-max
echo 100000 > /proc/sys/kernel/threads-max
于 2015-11-18T13:03:39.967 回答