System.InvalidOperationException: Ошибка пересылки нового сеанса не может быть найден: Capabilities {browserName: chrome, marionette: false} - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь запустить мой 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;                    
    }
}

Для запуска Hub я использую команду в 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?
Что я пропускаю или делаю неправильно?

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Это сообщение об ошибке ...

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

... означает, что ChromeDriver не смог инициировать / создать новый WebClient , т.е. браузер Chrome сеанс.

Ваша главная проблема - наличие неопределенной возможности для ChromeDriver следующим образом:

  • Вы вызвали SetCapability() с «марионеткой», ложным , но ChromeDriver не поддерживает такие возможности, как марионетка .
  • Возможность марионетка используется GeckoDriver , и при использовании selenium-server-standalone-3.11.0.jar вы должны обязательно использовать GeckoDriver , который по умолчанию устанавливает marionette как true . Если принудительно установить marionette как false , GeckoDriver сгенерирует исключение .
  • Как указывало @NareshChaurasia, когда вы инициируете Selenium Hub Node , вы должны пройти абсолютный путь ChromeDriver следующим образом:

    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
    
0 голосов
/ 01 мая 2018

Попробуйте это. Укажите местоположение драйвера при запуске вашего узла.

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/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...