Selenium Chromedriver挂了?

Tre*_*vor 9 python selenium selenium-chromedriver

我有一个长期运行的python应用程序,它将定期(每30-60秒)用selenium和chrome驱动程序打开一个网页,运行一些javascript并截取屏幕截图.它在Xvfb中使用chrome运行的EC2 ubuntu实例上运行,并且大部分内容都正常工作,除了间歇性程序将挂起.它发生在以下其中一条线上:

    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);
Run Code Online (Sandbox Code Playgroud)

(我没有一个确切的行,但我从调试语句中知道我已经把它放在这里介于两者之间)

不幸的是,该程序没有崩溃所以它没有任何错误消息,它只是在昨晚7点以后无休止地等待.运行strace -p 'python program pid'返回:wait4(-1,并运行strace -p 'chromedriver pid'返回recvfrom(20,

我可以看到ps axjf,该过程仍在运行,它只是没有做任何事情.我有点不知道现在该做什么,有什么建议吗?

chromedriver版本:2.10.267518

谷歌浏览器40.0.2214.111

硒(安装有点子):2.42.1

#https://github.com/cgoldberg/xvfbwrapper
xvfb = Xvfb(width=1920, height=1920)
xvfb.start()
Run Code Online (Sandbox Code Playgroud)

----编辑----

我刚才已经更新到ChromeDriver 2.14.313457Selenium 2.44.0,希望这将解决这个问题.我现在要打开这个.感谢你们的建议到目前为止!

----编辑----

所以服务仍然停止了.我想知道这是否是因为我关闭并重新启动google-chrome的每个屏幕截图?这是否可能以某种方式导致内存泄漏?我怎么诊断这个?

Kev*_*der 9

我遇到类似的问题,并找到了答案,在这里,并在博客它在这里.设置环境变量DBUS_SESSION_BUS_ADDRESS =/dev/null对我来说无需一直重启Xvfb.


Tre*_*vor 1

我从未找到导致此问题的具体代码片段,但在每个驱动程序加载时创建一个新的 Xvfb 实例似乎已经解决了这个问题。也许 selenium 和 Xvfb 之间的交互中存在内存泄漏?不管怎样,将其标记为已关闭。