在Flask / Uwsgi上运行的Splinter / Selenium看不到无头显示器

时间:2014-12-09 23:17:13

标签: python selenium flask headless xvfb

所以这是我的设置:

使用带有uwsgi的flask服务器,并通过控制器操作,调用使用splinter(使用selenium)的python脚本来自动化gui。网络服务器没有显示器,所以我使用的是xvfb。

进入机器并运行xvfb并导出display=:99,然后运行python脚本效果很好。但是通过控制器操作运行它不起作用 - 我收到以下错误:

  

WebDriverException:消息:在我们连接之前,浏览器似乎已退出。

(这与xvfb未运行时返回的错误相同)

ps aux表明xvfb作为与Web服务器相同的用户运行(我已经隔离了所有内容,并且执行了单独的控制器操作:

p = subprocess.Popen("Xvfb :99 &", stdout=fstdout,stderr=fstderr, shell=True))

DISPLAY在root用户和Web服务器用户上都设置为:99

我可以安装vncserver并试试,但我怀疑我最终会遇到同样的问题。我也试图避免直接调用xvfb并使用PyVirtualDisplay,但同样的问题。

编辑:此行上的错误(如果使用splinter):

browser = Browser()

或者,如果是硒:

with pyvirtualdisplay.Display(visible=True):

    binary = FirefoxBinary()
    driver = webdriver.Firefox(None, binary)

(它最后一行出错)

有什么想法吗?

0 个答案:

没有答案