yel*_*cap 5 python ubuntu firefox selenium webdriver
我正在尝试使用 selenium 在 python 的 Django 视图中创建屏幕截图。如果我在 root 下启动它,selenium firefox webdriver 运行良好。但是,当我尝试使用非超级用户运行它时,它会在尝试实例化驱动程序时冻结。Django 是通过 apachewww-data用户调用的,所以它遇到了这个问题。
有什么方法可以使 selenium firefox webdriver 以非 root 身份工作?
从全新的 Ubuntu 14.04 安装中,我执行了以下操作
sudo apt-get install python-pip firefox xvfb
pip install selenium pyvirtualdisplay
useradd testuser
Run Code Online (Sandbox Code Playgroud)
然后在 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()
Run Code Online (Sandbox Code Playgroud)
如果我以 root 身份登录 python,这可以正常工作,如果我使用 testuser 帐户,则该行将driver = webdriver.Firefox()过时而没有响应或错误。
我将感谢任何有关为什么会发生这种情况的建议。
我在 Linux 上使用 Selenium + Firefox 也遇到了同样的问题。问题出在 Linux 用户身上:要运行这些测试,Firefox 需要能够创建一个配置文件(Firefox 的配置文件)。该个人资料位于user_home/.mozilla/firefox/profiles
因此,就您的情况而言,请检查:
etc/passwd该用户是否有默认 shell,/bin/bash例如$ ls -larth:如果这个文件夹中的所有文件都属于root,你可以尝试更改该文件夹的权限,以允许你非root用户访问它(然后允许运行Firefox +硒)。您还可以更改组的权限并将 root 和非 root 用户添加到该组| 归档时间: |
|
| 查看次数: |
3471 次 |
| 最近记录: |