RobotFramework - WebDriverException:消息:服务 /usr/bin/safaridriver 意外退出。状态代码为:1

RobotFramework - WebDriverException: Message: Service /usr/bin/safaridriver unexpectedly exited. Status code was: 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

我已经尝试过的:我允许在 safari 浏览器上进行远程自动化,并以执行测试的用户身份启动它:

sudo safaridriver --enable

此外,如果我在屏幕共享中连接到 macOS 机器并手动重现确切的行为,一切正常,测试在 Safari 浏览器上启动。为了远程启动测试,我使用 Tomcat 服务器。

以下是我使用的工具版本: Python 2.7.16 硒 3.141.0 机器人框架 3.0.2 macOS 莫哈韦沙漠 10.14.6 Safari 14.0.1 (14610.2.11.51.10)(safaridriver 捆绑)

我希望这些测试能够像在 firefox 或 chrome 上一样远程启动,我已经在这里查看了许多其他问题,但没有找到任何解决方案。 我是 macOS 的新手,所以我一定缺少关于如何在 Mac 上授权进程的内容,我们将不胜感激。

我找到了解决问题的办法,我把它贴在这里,所以如果有人有同样的问题可以试试这个。

解决方案是我的 Tomcat 服务器是由没有显示权限的系统用户启动的,因此当我使用具有这些权限的用户(基本用户帐户)重新启动服务器时,safaridriver 可以已启动并且运行良好。

事实上,这只是与 safaridriver 相关的问题,因为现在 safaridriver 与 Safari 捆绑在一起,所以我想 Mac 将这种保护添加到他们自己的二进制文件中。