System.InvalidOperationException:转发新会话时出错找不到:功能{browserName:chrome,marionette:false}

System.InvalidOperationException : Error forwarding the new session cannot find : Capabilities {browserName: chrome, marionette: false}

我正在尝试 运行 我的 Selenium C# 自动化测试使用 Grid
当我 运行 测试时出现错误:

Message: System.InvalidOperationException : Error forwarding the new session cannot find : Capabilities {browserName: chrome, marionette: false, platform: WINDOWS}

我在以下目录中有 chromedriver.exe

F:\Selenium Projects\C#\Grid practice\automation\

我已将系统、控制面板的环境变量路径设置为路径:

F:\Selenium Projects\C#\Grid practice\automation\

我的代码片段是:

public class Browsers : DriverClass
{
    public IWebDriver LaunchBrowser(string browser)
    {
        switch (browser)
        {
            case "chrome":
                GoToChromeBrowser("chrome");
                break;

            case "firefox":
                GoToFirefoxBrowser();
                break;

            case "ie":
                GoToIeBrowser();
                break;

            case "edge":
                GoToEdgeBrowser();
                break;

            case "remote":
                GoToRemoteBrowser();
                break;
            default:
                throw new Exception("did not find browser type selected");
        }
        return Driver;
    }
}

方法GoToChromeBrowser():

public void GoToChromeBrowser(string BrowserType)
{
    switch (BrowserType)
    {
        case "firefox":
            Driver = new FirefoxDriver();
            break;
        case "chrome":
            DesiredCapabilities cap = new DesiredCapabilities();
            cap.SetCapability(CapabilityType.BrowserName, "chrome");
            cap.SetCapability("marionette", false);
            cap.SetCapability(CapabilityType.Platform, new Platform(PlatformType.Windows));
            Driver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), cap);
            break;                    
    }
}

要启动集线器,我在 CMD 中使用命令:

java -jar F:\Selenium\Server\selenium-server-standalone-3.11.0.jar -role hub

要注册节点,我使用命令:

java -jar selenium-server-standalone-3.11.0.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=chrome version=ANY, maxInstances=5, platform=WINDOWS" -port 5566 

集线器已正常启动,节点已注册。那里没有错误。
为什么我 运行 在 Visual Studio 中进行测试时出现错误?
我错过了什么或做错了什么?

试试这个。启动节点时指定驱动程序的位置。

java -Dwebdriver.chrome.driver=D:/nchaurasia/Automation-Architect/connect2tech.in-SeleniumWebDriver3.x_2/driver/chromedriver.exe -jar selenium-server-standalone-3.9.1.jar -role node -hub http://192.168.137.1:4444/grid/register/

这个错误信息...

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally

...表示 ChromeDriver 无法 initiate/spawn 新的 WebClientChrome 浏览器 session.

您的主要问题是 ChromeDriver 存在未定义的 capability,如下所示:

  • 您使用 "marionette"、false 调用了 SetCapability(),但是 ChromeDriver 不支持 marionette.
  • 等功能
  • 能力 marionetteGeckoDriver 使用,而您正在使用 selenium-server-standalone-3.11.0.jar 你必须强制使用 GeckoDriver 默认设置 marionettetrue。如果你强行设置 marionettefalseGeckoDriver 将抛出异常.
  • 正如@NareshChaurasia 在启动 Selenium Hub Node 时指出的那样,您必须传递 [=75= 的绝对路径]Driver如下:

    java -Dwebdriver.chrome.driver=F:/Selenium Projects/C#/Grid practice/automation/chromedriver.exe -jar selenium-server-standalone-3.11.0.jar -role node -hub http://192.168.0.100:4444/grid/register