Python 硒铬晶片悬挂?

Python 硒铬晶片悬挂?,python,selenium,selenium-chromedriver,Python,Selenium,Selenium Chromedriver,我有一个长期运行的python应用程序,它会定期(每30-60秒)打开一个带有selenium和chrome驱动程序的网页,运行一些javascript并截图。它运行在一个EC2 ubuntu实例上,chrome在Xvfb中运行,大部分情况下一切正常,只是程序会间歇性挂起。它发生在以下线路之一: options = Options() options.add_argument("--disable-web-security") options.add_argument("

我有一个长期运行的python应用程序,它会定期(每30-60秒)打开一个带有selenium和chrome驱动程序的网页,运行一些javascript并截图。它运行在一个EC2 ubuntu实例上,chrome在Xvfb中运行,大部分情况下一切正常,只是程序会间歇性挂起。它发生在以下线路之一:

    options = Options()
    options.add_argument("--disable-web-security")
    options.add_argument("--webdriver-logfile=webdrive.log")
    dc = DesiredCapabilities.CHROME
    dc['loggingPrefs'] = {'browser': 'ALL'}
    driver = webdriver.Chrome(chrome_options=options, desired_capabilities=dc)
    driver.get(url);
(我没有一行精确的代码,但我从我输入的调试语句中知道它在这两者之间)

不幸的是,该程序没有崩溃,因此没有任何错误消息,只是从昨晚7点开始无休止地等待。运行
strace-p'python程序pid'
返回:
wait4(-1,
并运行
strace-p'chromedriver pid'
返回
recvfrom(20,

我可以在
ps axjf
中看到进程仍在运行,只是没有做任何事情。我现在有点不知所措,有什么建议吗

chromedriver版本:2.10.267518

谷歌浏览器40.0.2214.111

Selenium(与pip一起安装):2.42.1

----编辑----

我刚刚更新到
ChromeDriver 2.14.313457
Selenium 2.44.0
,希望这能解决这个问题。我现在就不讨论这个问题。谢谢大家的建议

----编辑----


因此,该服务仍然挂起。我想知道这是否是因为我关闭并重新启动google chrome的每个屏幕截图?这是否可能导致内存泄漏?我如何诊断这一问题?

我从未发现导致此问题的特定代码段,而是在每个驱动程序加载时创建一个新的Xvfb实例我想我已经修复了它。可能在selenium和Xvfb之间的交互中有内存泄漏?不管怎样,都会将其标记为已关闭。

我遇到了一个类似的问题,找到了答案并写了日志。设置环境变量DBUS_SESSION_BUS_ADDRESS=/dev/null对我来说很有效,而不必一直重新启动Xvfbe、

如果没有指定chrome选项,它会挂起吗?您使用的是哪个selenium和chrome版本?另外,尝试添加调试日志消息,看看挂起的是哪一行。另外,演示如何启动
xvfb
。谢谢。请查看我的编辑。在发生这种情况的几次中,我一直在添加调试消息,尽管我想我不是thor够了。首先要尝试将selenium升级到最新(目前为2.44)版本。我认为Chromedriver是罪魁祸首。Chromedriver 2.10仅涵盖Chrome版本36。
#https://github.com/cgoldberg/xvfbwrapper
xvfb = Xvfb(width=1920, height=1920)
xvfb.start()