我有一个运行时间较长的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);
(我没有确切的一行,但我从调试语句中知道,它位于此处之间的某处)
不幸的是,该程序不会崩溃,因此它没有任何错误消息,它自昨晚7pm开始无休止地等待着。运行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.313457
和Selenium 2.44.0
,希望可以解决此问题。我现在暂时不公开。到目前为止,感谢您的建议!
-—编辑----
因此该服务仍然挂起。我想知道是否是因为我关闭并重新启动google-chrome的每个屏幕截图?这是否可能以某种方式导致内存泄漏?我该如何诊断?
我从来没有发现导致此问题的特定代码段,但是用每个驱动程序负载创建Xvfb的新实例似乎已解决了该问题。硒与Xvfb之间的交互中某处可能存在内存泄漏?无论哪种方式,都将其标记为已关闭。
问题内容: 我有一个python程序,可以打开一个套接字并提取ssl证书。它很好用,但是当我在某个IP范围内运行它时,程序不会通过线程140进行处理。有没有办法查看为什么它没有进行处理? 这是程序的线程部分 问题答案: 我不知道为什么它不起作用,但是我编写了一个模块,可以在文件的开头导入该模块: 它将显示线程挂起的位置,您可以进一步调试。
我用的thinkcmf这个框架,突然所有的接口返回前面都自动加了一个“<!-23-230-jsc-->”,我也没找到这个东西是在哪里生成的,有遇到过的吗?
25届手上最后的面试了,hr面完等了三天挂了真想死了xdm
投递网络工程师岗位 自我介绍 看我CCIE证书,就一直说续期续期的事情(内心os,穷学生一枚,续不续对我没啥影响,这也就是拿来公司招投标),我说还可以考其他方向的,这个证书问题纠结了一阵子。(不过我看去年社招有这个证是放宽到专科哈) 之后看着简历来问,看我做过某运营商城域网项目,象征性问了一下,我说某运营商属于客户。 之后都是闲聊,问研究方向,他们不理解,我立马解释了两遍。 问我之前在老家电信做的
不知道该说什么,就问了我两个问题?半个小时结束,问题我也都回答了,而且也不难,结果给我挂了,特别无语。。。 1.小程序开发和H5网页开发有什么区别 2.vue和react区别#我的求职思考#
是个女生面试官,声音温柔,给我打了电话预约面试时间,还提前跟我说了一下我的笔试成绩有点烂,面试的时候要加一轮笔试 笔试内容: 1.20分钟两道题,其中一道SQL简单程序,平常都不怎么用SQL语言,直接跪了 八股内容: 1.了解数据库的事务么(只是粗略看过一眼数据库八股,根本不记得,直接说不太了解) 2.https和http 3.get和post请求 4.乐观锁和悲观锁(正好面试前看到小林codin