Как настроить удаленный веб-драйвер в Nightwatch?

#javascript #remotewebdriver #nightwatch #selenoid

Вопрос:

Я начинаю работать с Nightwatch и пытаюсь запустить браузер удаленно с помощью Selenoid.

Но, похоже, в официальной документации нет примера конфигурации удаленного веб-драйвера. Например, в Java я создаю объект RemoteWebDriver, передавая в него URL-адрес концентратора, например:

  WebDriver wd = new RemoteWebDriver(URI.create('http://hub-master:4444/wd/hub').toURL(), capabilities)
 

Но когда я устанавливаю предложенные параметры из документации (https://nightwatchjs.org/gettingstarted/configuration/#webdriver-settings):

 webdriver: {
        "host": "http://hub-master",
        "port": 4444,
        "default_path_prefix": "/wd/hub",
        "log_path": 'selenium_logs',
},
 

Я получаю сообщение об ошибке:

   An error occurred while retrieving a new session: "getaddrinfo ENOTFOUND http://simulia-master"
 

Итак, может ли кто-нибудь привести пример настроенного удаленного веб-драйвера в Nightwatch conf.js для Селеноида или Селеновой сетки, пожалуйста?

Комментарии:

1. Я думаю, это должно быть справедливо hub-master .

Ответ №1:

Решается следующей конфигурацией. Оказалось, что базовые selenium настройки могут быть установлены default для использования в нескольких локальных средах, а также его конкретные поля, такие как хост и порт, могут быть переопределены в selenoid средах:

  test_settings: {
        default: {
            disable_error_log: false,
            launch_url: 'https://my-url.com',
            selenium: {
                host: "localhost",
                port: 4444,
                start_process: true,
                server_path: "node_modules/selenium-server/lib/runner/selenium-server-standalone-3.141.59.jar",
                start_session: true,
                log_path: "out/selenium_log",
                cli_args: {
                    "webdriver.chrome.driver": "node_modules/chromedriver/lib/chromedriver/chromedriver.exe",
                    "webdriver.gecko.driver": "node_modules/geckodriver/geckodriver.exe"
                }
            },
            desiredCapabilities: {
                "browserName": "chrome", /* default browser for local run */
            },
        },
        chrome: {
            silent: true,
            screenshots: {
                enabled: true,
                path: './screenshots/chrome/',
                on_failure: true,
                on_error: true,
            },
            desiredCapabilities: {
                browserName: "chrome",
                chromeOptions: {
                    args: [
                        "disable-web-security",
                        "ignore-certificate-errors",
                        "--test-type"
                    ],
                    "prefs": {
                        "protocol_handler": {
                            "allowed_origin_protocol_pairs": allowedProtocols
                        },
                    },
                    "w3c": false,
                }
            }
        },
        firefox: {
            screenshots: {
                enabled: true,
                path: './screenshots/firefox/',
                on_failure: true,
                on_error: true,
            },
            desiredCapabilities: {
                browserName: "firefox",
                alwaysMatch: {
                    "moz:firefoxOptions": {
                        args: [
                            "--headless",
                            "--width=1920",
                            "--height=1080"
                        ],
                    }
                }
            }
        },
        selenoidChrome: {
            selenium: {
                start_process: false,
                host: "selenoid-host",
                port: 4444,
                live_output: true,
            },
            screenshots: {
                enabled: true,
                path: './screenshots/selenoidChrome',
                on_failure: true,
                on_error: true,
            },
            desiredCapabilities: {
                "enableVNC": true,
                "browserName": "chrome",
                "enableLog": true,
                "enableVideo": true,
            },
        },
        selenoidFirefox: {
            extends: 'selenoidChrome',
            screenshots: {
                path: './screenshots/selenoidFirefox',
            },
            desiredCapabilities: {
                "browserName": "firefox",
            }
        },
    },