python - Selenium Chromedriver 挂起?

标签 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);

(我没有确切的行,但我从我输入的调试语句中知道它介于这两者之间)

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

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

chromedriver 版本:2.10.267518

谷歌浏览器 40.0.2214.111

Selenium(用 pip 安装):2.42.1

#https://github.com/cgoldberg/xvfbwrapper
xvfb = Xvfb(width=1920, height=1920)
xvfb.start()

---- 编辑----

我刚刚更新到 ChromeDriver 2.14.313457Selenium 2.44.0,希望这会解决问题。我现在要保持开放状态。感谢到目前为止的建议!

---- 编辑----

所以服务还是挂了。我想知道这是否是因为对于我关闭并重新启动 google-chrome 的每个屏幕截图?这是否可能以某种方式导致内存泄漏?我该如何诊断?

最佳答案

我遇到了类似的问题并找到了答案 here并写了关于它的博客 here .设置环境变量 DBUS_SESSION_BUS_ADDRESS=/dev/null 对我有用,无需一直重启 Xvfb。

关于python - Selenium Chromedriver 挂起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28463934/

相关文章:

python - 如何将任意参数传递给 flask 蓝图?

Python - 使用子进程调用 sed?

python - 理解 pyqt 中的 connectSlotsByName() 有问题吗?

java - 如何在selenium框架中的不同类之间传递相同的浏览器实例

javascript - 如何创建包含索引的 CSS 选择器元素

python - 在弹出窗口中输入文本,无法使用 python selenium 找到元素

python - 我可以在 64 位 python 中使用 32 位 dll 或 exe 吗?

python - 如何获取href中的链接?

java - 为什么我不能使用 selenium 将图像上传到上传输入按钮?手动打开时工作正常,但为什么不能通过selenium工作?

javascript - 使用 chrome 80 和 chromedriver v80 时,您的连接不是私密的