Как запустить ночные часы против сафари?
Я не могу найти какую-либо действительную конфигурацию ночных часов для сафари, которая не включает всю банку Selenium. Документация о ночных часах гласит:
Использование Selenium Standalone Server раньше было стандартом де-фактора для управления различными драйверами и службами браузера, но запуск с Nightwatch 1.0 больше не требуется и не рекомендуется, если только вы не тестируете устаревшие браузеры, такие как Internet Explorer.
Сафари считается устаревшим браузером? У кого-нибудь есть пример рабочего конфигурационного файла nightwatch 1.x, который может запускать тесты против safari?
MacOS: высокая Сьерра 10.13.6
Safari: 12.0.2
Ночной дозор: v1.0.18
Мой текущий nightwatch.json, который работает для Chrome, но не для сафари:
{
"src_folders": [
"__tests__/e2e/tests"
],
"output_folder": "__tests__/e2e/reports",
"custom_commands_path": "",
"custom_assertions_path": "",
"page_objects_path": "",
"globals_path": "",
"webdriver": {
"start_process": true
},
"test_settings": {
"default": {
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptSslCerts": true,
"chromeOptions": {
"args": [
"--window-size=1440,900"
]
}
}
},
"devChrome": {
"launch_url": "https://DEV_HOST",
"globals": {
"env": "dev"
},
"webdriver": {
"server_path": "node_modules/chromedriver/lib/chromedriver/chromedriver.exe",
"port": 9515
}
},
"devSafari": {
"launch_url": "https://DEV_HOST",
"globals": {
"env": "dev"
},
"webdriver": {
"server_path": "/usr/bin/safaridriver",
"port": 9515
}
}
}
}
Текущая ошибка, которую я получаю при запуске конфигурации devSafari: Не удалось запустить сервер: необходимо указать хотя бы один аргумент конфигурации.
1 ответ
Получила некоторую помощь от команды nightwatch на GitHub ( https://github.com/nightwatchjs/nightwatch-docs/issues/94), и теперь у меня есть рабочий пример файла конфигурации для Nightwatch 1.x и Safari 10+. ПРИМЕЧАНИЕ. Под "работой" я подразумеваю, что браузер открывается, и я вижу, что Nightwatch взаимодействует с ним. Тесты на самом деле не проходят так, как в Chrome, но, скорее всего, это связано с небольшими различиями в браузерах, которые можно устранить в самих тестах.
{
"src_folders": [
"__tests__/e2e/tests"
],
"output_folder": "__tests__/e2e/reports",
"custom_commands_path": "",
"custom_assertions_path": "",
"page_objects_path": "",
"globals_path": "",
"webdriver": {
"start_process": true,
"server_path": "/usr/bin/safaridriver",
"port": 4445
},
"test_settings": {
"default": {
"desiredCapabilities": {
"browserName": "safari",
"javascriptEnabled": true,
"acceptSslCerts": true
}
},
"safari": {
"launch_url": "localhost",
"desiredCapabilities": {
"browserName":"safari"
},
"globals": {
"env": "dev"
}
}
}
}
- Бежать:
/usr/bin/safaridriver --enable
- Откройте Safari и выберите "Разработка"> "Разрешить удаленную автоматизацию", затем закройте Safari.
- Запустить ночной дозор
С Safari 10+ вам просто нужно использовать safari
как browserName
, Затем убедитесь, что вы указали правильную среду при выполнении тестов. Для моего конфига это означает передачу параметров --env safari
, Вот мой nightwatch.conf.js:
module.exports = {
src_folders: ['tests/e2e/specs'],
output_folder: 'tests/e2e/reports',
selenium: {
start_process: true,
server_path: require('selenium-server').path,
host: '127.0.0.1',
port: 4444,
cli_args: {
'WebDriver.chrome.driver': require('chromedriver').path,
},
},
test_settings: {
chrome: {
desiredCapabilities: {
browserName: 'chrome',
},
},
safari: {
desiredCapabilities: {
browserName: 'safari',
javascriptEnabled: true,
acceptSslCerts: true,
},
},
},
}