我通过终端在基于 Ubuntu 的 AWS 实例中安装了 Google Chrome,方法如下:https://www.cyberciti.biz/faq/how-to-install-google-chrome-in-ubuntu-linux-12-xx-13-xx/
问题是我可以以 root 用户身份调用 Chrome,但不能以普通用户身份调用 Chrome:
我使用 chmod 操纵访问权限尝试调试问题,但是没有解决它。
在这种情况下,如何以普通用户身份调用 Chrome?
由于这个问题,当我通过 Jenkins 运行测试时,我收到此错误: org.openqa.selenium.WebDriverException: Unknown error: no chrome binary at /usr/bin/google-chrome
答案1
我没有针对这个问题的实际修复,但我可以通过安装 Chromium 而不是 Chrome 来绕过我的实际拦截器。我发现的区别是两者的安装目录。
我使用 @d4rk4ng31 共享的链接安装了 Chrome。 whereis Google-Chrome-Stable 给出:
qa_user@jenkins:~$ 其中 google-chrome-stable google-chrome-stable: /usr/bin/google-chrome-stable /usr/share/man/man1/google-chrome-stable.1.gz
qa_user@jenkins:~$ google-chrome-stable 给出: google-chrome-stable: command not find
现在铬:
qa_user@jenkins:~$ whereis chromium-browser 给出: chromium-browser: /usr/bin/chromium-browser /usr/lib/chromium-browser /etc/chromium-browser /usr/share/chromium-browser /usr/share /man/man1/chromium-browser.1.gz
和 qa_user@jenkins~$ chromium-browser [21304:21304:0607/135202.629230:ERROR:browser_main_loop.cc(1473)] 无法打开 X 显示。识别并打开 Chromium(X 显示问题可以通过在实际 Selenium 代码中添加 --headless 选项来解决)。
所以我将使用 Chromium 而不是 Chrome,直到我可以解决这里的实际 chrome 问题。
答案2
更新:在上述解决方案之后,我卸载了 Chromium,只保留 Chrome 进行进一步测试。令人惊讶的是,chrome 问题得到了解决。我现在可以在 Chrome 中运行测试了。不知道这是怎么发生的,但我认为这与 Chrome 附带的依赖包有关。