Не удалось подключиться к SafariDriver (Safari 10)

Я получаю следующую ошибку при запуске моего теста транспортира на Mac для сафари

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.

Благодарю вас!


person CodeJockey    schedule 06.01.2017    source источник


Ответы (2)


Да, вам нужно установить определенный драйвер Safari, чтобы запустить это внутри транспортира. И, конечно же, вы должны быть на Mac. Protractor — это, по сути, слой, построенный поверх Selenium, поэтому вам необходимо установить драйвер селена для Safari, который реализован как плагин для сафари.

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

  1. Загрузите подключаемый модуль Safari с здесь.
  2. Запустите плагин
  3. Выберите «Доверять» плагину при появлении запроса сафари.

Теперь драйвер установлен и должен быть доступен для вашего транспортира.

Это драйвер для Selenium 2.48. Я не смог найти более свежую сборку, поэтому, если эта версия драйвера не работает с текущей версией Protractor, вам нужно будет либо использовать более старую версию protractor, основанную на Selenium 2.48, либо собрать драйвер Safari из исходного кода. .

person Andrew Eisenberg    schedule 09.01.2017
comment
Благодарю вас! Последние сборки можно найти здесь selenium-release.storage.googleapis.com/index.html. - person CodeJockey; 10.01.2017
comment
Насколько я мог судить, 2.48 была последней сборкой, содержащей плагин для сафари. Может есть где лучше скачать, но я не нашел. - person Andrew Eisenberg; 10.01.2017

Прежде всего, начиная с Safari 10, Safari поставляется с новой реализацией драйвера. Старый драйвер (расширение) устарел. Вы используете macOS 10.12.2, так что дело ваше. Чтобы включить новый драйвер в Safari, установите флажок Разрешить удаленную автоматизацию в меню Разработка. Если у вас нет этого меню, включите его: Настройки > Дополнительно > Показать меню «Разработка» в строке меню. Запустите /usr/bin/safaridriver один раз вручную, чтобы предоставить ему необходимые разрешения.

Во-вторых, вам нужна версия Selenium Standalone Server 3.x, а не 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 } к возможностям). Но по мне превью работает даже хуже релиза. Protractor говорит, что не может найти Angular на странице, потому что они изменили window.name, чтобы он очищался после перехода между источниками в выпуск 19. Если вы найдете способ заставить его работать, пожалуйста, дайте мне знать.

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

person thorn0    schedule 23.01.2017