Запуск сафаридрайвера через ssh всегда запрашивает пароль

Я хотел бы запустить тест селена сафари на виртуальной машине на виртуальном боксе.

У меня работает macOS Sierra 10.12 внутри виртуальной коробки. Учебники говорят, что вам нужно запустить

/USR/бен/сафаридрайвер

один раз, чтобы разрешить это. Я это сделал. И тесты проходят отлично, когда я запускаю их в терминале через графический интерфейс виртуального ящика. Но когда я подключаюсь по ssh к этой виртуальной машине, меня всегда спрашивают пароль. Это проблема при автономном запуске webdriver-manager/selenium, когда я не могу указать пароль.

Vbox: Safari 10.0, macOS Sierra 10.12


person user2166153    schedule 30.03.2017    source источник


Ответы (2)


Это известная проблема в Safari 10, обходной путь которой неизвестен, за исключением использования терминала через оконный сервер.

В Safari 11+ safaridriver требует от вас только запуска safaridriver --enable, а аутентификация будет кэшироваться до конца сеанса входа. Итак, вы должны просто добавить это в свой скрипт, который входит в систему.

Есть отдельная проблема, что safaridriver не работает, если у вас есть ssh и нет запущенного оконного сервера. На данный момент нет обходного пути для этого — машине требуется сеанс графического интерфейса для запуска Safari и веб-драйвера.

person Brian Burg    schedule 10.08.2017

У меня аналогичная проблема, как указано выше, я попытался запустить safaridriver --enable в Mac OS Sierra Safari 11, и мне все еще предлагается ввести пароль.

Кроме того, когда я запускаю тесты на selenium node и selenium hub, которые запускаются с терминала внутри виртуального ящика, запускается сафари, однако, когда я ssh подключаюсь к этому виртуальному ящику, чтобы запустить тот же процесс Я получаю следующую ошибку

13:45:50 Исключение: org.openqa.selenium.SessionNotCreatedException: невозможно установить новый сеанс 54:15.039З'

Обходной путь, который я нашел для решения этой проблемы, заключается в создании Applescript, который будет выполнять желаемый сценарий, а затем выполнять этот Applescript через ssh.

Apple Script
============

    Tell Application "Terminal"
        activate
        set Shell to do Script "your script"
    end Tell

теперь вы можете вызывать этот скрипт через ssh osascript "${pathToScript}/run.scpt"

person user8672807    schedule 26.09.2017