所以这是我的设置:

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

Sshing进入机器并运行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)

(它最后一行出错)

有任何想法吗?