Не удалось подключиться к SafariDriver (Safari 10)
Я получаю следующую ошибку при запуске моего теста транспортира на Mac для Safari
Failed to connect to SafariDriver after 10082 ms
Build info: version: '2.53.1', revision: 'a36b8b1',
os.arch: 'x86_64', os.version: '10.12.2', java.version: '1.8.0_101'
Driver info: driver.version: SafariDriver
возможности:
name: 'Safari',
browserName: 'safari',
logName: 'Safari',
shardTestFiles: true,
maxInstances: 2
Нужен ли для этого специальный драйвер для сафари? Если да, где я могу получить это и где это должно быть объявлено в .conf
файл.
Спасибо!
2 ответа
Да, вам нужно установить определенный драйвер safari, чтобы запустить его внутри транспортира. И, конечно же, вы должны быть на Mac. Protractor - это, по сути, слой, построенный поверх Selenium, поэтому вам нужно установить драйвер селен для Safari, который реализован как плагин Safari.
Вот что вам нужно сделать:
- Загрузите плагин Safari отсюда.
- Запустите плагин
- Выберите "Доверять" плагину при запросе Safari.
Теперь драйвер установлен и должен быть доступен вашему процессу транспортира.
Это драйвер для Selenium 2.48. Я не смог найти более свежую сборку, поэтому, если эта версия драйвера не работает с текущей версией Protractor, вам нужно будет либо использовать более старую версию Protractor, основанную на Selenium 2.48, либо собрать драйвер safari из исходного кода.,
Прежде всего, начиная с Safari 10, Safari поставляется с новой реализацией драйвера. Старый драйвер (расширение) устарел. Вы используете macOS 10.12.2, так что это ваш случай. Чтобы включить новый драйвер в Safari, установите флажок " Разрешить удаленную автоматизацию" в меню " Разработка". Если у вас нет этого меню, включите его: " Настройки" > " Дополнительно" > " Показать меню разработки" в строке меню. Начните /usr/bin/safaridriver
один раз вручную, чтобы предоставить ему необходимые разрешения.
Во-вторых, вам нужна 3.x версия Selenium Standalone Server, а не 2.53.1. Команда для его установки:
sudo webdriver-manager update --versions.standalone 3.0.1
Начать:
webdriver-manager start --versions.standalone 3.0.1
В-третьих, проверки видимости нарушены в новом драйвере. Такие вещи, как browser.wait(ExpectedConditions.visibilityOf(myElement), 5000);
не работать и привести к UnsupportedCommandException
, Чтобы это исправить, вы можете попробовать установить Safari Technology Preview и запустить там тесты (добавить 'safari.options': { technologyPreview: true }
к возможностям). Но для меня превью работает даже хуже, чем релиз. Транспортир говорит, что не может найти Angular на странице, потому что они изменились window.name
подлежит очистке после перекрестной навигации в Выпуске 19. Если вам случится найти способ заставить его работать, пожалуйста, дайте мне знать.
Ниже приведены ссылки, которые вы должны проверить, потому что я мог что-то пропустить.