Cpt*_*emo 38 python macos selenium phantomjs selenium-webdriver
我phantomjs使用以下内容在Python中启动和关闭
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get(url)
html_doc = driver.page_source
driver.close()
Run Code Online (Sandbox Code Playgroud)
在脚本结束执行后,我仍然phantomjs在我的Mac Activity Monitor中找到了一个实例.实际上,每次运行脚本时phantomjs都会创建一个新进程.
我应该如何关闭驱动程序?
lee*_*sky 46
截至7月2016,driver.close()并driver.quit()不足以对我来说.这导致了node进程,但不是phantomjs它产生的子进程.
在讨论了这个GitHub问题之后,对我有用的单一解决方案就是运行:
import signal
driver.service.process.send_signal(signal.SIGTERM) # kill the specific phantomjs child proc
driver.quit() # quit the node proc
Run Code Online (Sandbox Code Playgroud)
whi*_*win 22
请注意,如果您的计算机上有多个线程/进程启动PhantomJS,这显然会造成麻烦.
我见过几个人用同样的问题而大伤脑筋,但对我来说,最简单的解决方法/黑客是在您调用执行从通过Python的命令行下面driver.close()或driver.quit():
pgrep phantomjs | xargs kill
Run Code Online (Sandbox Code Playgroud)
Jim*_*ans 18
.close()不保证该方法释放与驱动程序实例关联的所有资源.请注意,这些资源包括但不限于驱动程序可执行文件(在本例中为PhantomJS).该.quit()方法旨在释放驱动程序的所有资源,包括退出可执行进程.
小智 6
我在Windows机器上遇到了类似的问题.我也没有运气
driver.close()
Run Code Online (Sandbox Code Playgroud)
要么
driver.quit()
Run Code Online (Sandbox Code Playgroud)
实际上关闭了PhantomJS窗口,但当我同时使用它们时,PhantomJS窗口最终关闭并正确退出.
driver.close()
driver.quit()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25638 次 |
| 最近记录: |