#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",
}
},
},