为什么 selenium webdriver Firefox 不适用于非特权用户?

2024-02-02

我正在尝试使用 selenium 在 python 的 Django 视图中创建屏幕截图。如果我在 root 下启动,selenium firefox webdriver 运行良好。但是,当我尝试使用非超级用户运行它时,它在尝试实例化驱动程序时冻结。 Django是通过apache调用的www-data用户,所以它遇到了这个问题。

有什么方法可以让selenium firefox webdriver以非root身份工作吗?

从全新的 Ubuntu 14.04 安装中,我执行了以下操作

sudo apt-get install python-pip firefox xvfb
pip install selenium pyvirtualdisplay
useradd testuser

然后在 python shell 中:

from selenium import webdriver
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
driver = webdriver.Firefox()
driver.get("http://askubuntu.com")
print driver.page_source.encode('utf-8')
driver.quit()
display.stop()

如果我以 root 身份登录 python,则效果很好,如果我使用 testuser 帐户,则该行driver = webdriver.Firefox()陈旧,没有响应或错误。

对于为什么会发生这种情况的任何建议,我将不胜感激。


我在 Linux 上使用 Selenium + Firefox 也遇到了同样的问题。问题出在 Linux 的用户身上:要运行这些测试,Firefox 需要能够创建一个配置文件(Firefox 的配置文件)。该个人资料位于user_home/.mozilla/firefox/profiles

因此,就您的情况而言,请检查:

  • 这个linux的用户可以在自己家里写
  • In etc/passwd检查该用户是否有默认 shell,/bin/bash举例来说
  • 在您的 web 应用程序所在的目录中:尝试$ ls -larth:如果其中的所有文件都属于root,您可以尝试更改此文件夹的权限,以允许非 root 用户访问它(然后允许运行 Firefox + Selenium)。您还可以更改组的权限并将 root 和非 root 用户添加到该组
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 selenium webdriver Firefox 不适用于非特权用户? 的相关文章

随机推荐