System.InvalidOperationException: Невозможно создать новый сервис: ChromeDriverService с ChromeDriver и SeleniumGrid на локальном компьютере. - PullRequest
0 голосов
/ 01 марта 2019

Я настроил Selenium Grid (как Hub, так и Node) на моей локальной машине, которая работает в Windows 10, используя следующую команду для регистрации Hub.

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

и для регистрации Node, которую я использовал нижекоманда

java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://10.37.34.2:4444/grid/register -port 5454

В командной строке показывалось, что «Узел зарегистрирован в концентраторе и готов к использованию»

Проверенная консоль Grid также на http://localhost:4444/grid/console. Все выгляделоотлично.

Когда я выполнил простой тестовый пример в Visual Studio, я увидел следующее сообщение об ошибке.

Сообщение о результате:

System.InvalidOperationException : Unable to create new service: ChromeDriverService
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'PCD-F3FD2', ip: '10.37.34.2', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_172'
Driver info: driver.version: unknown (SessionNotCreated)

В командной строке концентратора,Я вижу

"20:47:46.539 INFO [RequestHandler.process] - Got a request to create a new session: Capabilities {browserName: chrome, goog:chromeOptions: {}, platformName: windows}
20:47:46.542 INFO [TestSlot.getNewSession] - Trying to create a new session on test slot {server:CONFIG_UUID=0c4146b1-d7d9-4f39-91ce-b30c57c53342, seleniumProtocol=WebDriver, browserName=chrome, maxInstances=5, platformName=WIN10, platform=WIN10}"

В командной строке узла я вижу

20:47:46.601 INFO [ActiveSessionFactory.apply] - Capabilities are: {
"browserName": "chrome",
"goog:chromeOptions": {
},
"platformName": "windows"}


20:47:46.602 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.openqa.selenium.grid.session.remote.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)

Ниже мой код C #:

[Test]
    public void AccessGoogle()
    {

        ChromeOptions options = new ChromeOptions();
        options.BinaryLocation = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
        options.PlatformName = PlatformType.Windows.ToString();

        IWebDriver d = new RemoteWebDriver(new Uri("http://10.37.34.2:4444/wd/hub"), options.ToCapabilities());

        d.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);

        d.Url = "https://www.google.com/";
    }

Не могли бы вы мне помочь?чтобы понять, что пошло не так?

Я также подправил настройки брандмауэра на своих машинах.Но не повезло!

1 Ответ

0 голосов
/ 01 марта 2019

Поскольку вы настроили Selenium Grid (как концентратор, так и узел) на локальном компьютере, поэтому при инициализации Selenium Grid Node вам необходимо пройти абсолютный путь местоположения ChromeDriver через аргумент Dwebdriver.chrome.driver следующим образом:

java -Dwebdriver.chrome.driver=C:\path\to\chromedriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://10.37.34.2:4444/grid/register -port 5454
...