Не удалось подключиться к 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.

Вот что вам нужно сделать:

  1. Загрузите плагин Safari отсюда.
  2. Запустите плагин
  3. Выберите "Доверять" плагину при запросе 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. Если вам случится найти способ заставить его работать, пожалуйста, дайте мне знать.

Ниже приведены ссылки, которые вы должны проверить, потому что я мог что-то пропустить.

Другие вопросы по тегам