RobotFramework - WebDriverException: сообщение: служба / usr / bin / safaridriver неожиданно завершила работу. Код состояния был: 1

Я использую Robot Framework для выполнения некоторых тестов продуктов общества, в котором я работаю. На самом деле, мои тесты выполняются на машине с macOS. Я могу удаленно запускать тесты в firefox и chrome, и все работает нормально. Когда я пытаюсь запустить тот же тест удаленно в Safari, я получаю такую ​​ошибку:

WebDriverException: Message: Service /usr/bin/safaridriver unexpectedly exited. Status code was: 1

Я проверил консоль, и эти ошибки появляются, когда машина пытается запустить safaridriver:

authd         Fatal: interaction not allowed (kAuthorizationFlagInteractionAllowed not set)
safaridriver  Authorization failed with error -60007.
authd         copy_rights: authorization failed

Что я уже пробовал: я разрешил удаленную автоматизацию в браузере сафари и запустил это как пользователь, выполняющий тесты:

sudo safaridriver --enable

Более того, если я подключаюсь в режиме общего доступа к экрану с компьютером macOS и воспроизводю точное поведение вручную, все работает нормально, и в браузере Safari запускается тест. Для удаленного запуска тестов я использую сервер Tomcat.

Вот версии инструментов, которые я использую: Python 2.7.16 Selenium 3.141.0 Robotframework 3.0.2 macOS Mojave 10.14.6 Safari 14.0.1 (14610.2.11.51.10) (с ним в комплекте идет safaridriver)

Я бы хотел, чтобы эти тесты запускались удаленно, точно так же, как в firefox или chrome, я уже смотрел здесь много других вопросов, но не нашел никакого решения. Я новичок в работе с macOS, поэтому мне должно быть что-то, что мне не хватает о том, как авторизовать процессы на Mac, любая помощь будет оценена.


person Victor Vogt    schedule 03.12.2020    source источник


Ответы (1)


Я нашел решение проблемы и публикую его здесь, поэтому, если у кого-то такая же проблема, можно попробовать это.

Решение заключалось в том, что мой Tomcat Server был запущен системным пользователем, у которого нет прав на отображение, поэтому, когда я перезапустил сервер с пользователем, имеющим эти права (базовая учетная запись), safaridriver мог быть запущен, и он работал нормально.

Дело в том, что это была проблема, связанная только с safaridriver, заключается в том, что теперь safaridriver поставляется в комплекте с Safari, поэтому я думаю, что Mac добавляет такую ​​защиту в свои собственные двоичные файлы.

person Victor Vogt    schedule 11.12.2020