代码如下
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("url")
driver.find_element_by_xpath("xxx")
...
...
...
driver.quit()
class Example:
def __init__(self):
self.driver = driver.Chrome()
def execute(self):
self.driver.get("url")
...
...
...
def __del__(self):
if self.driver:
self.driver.quit()
self.driver = None
try:
e = Example()
e.execute()
e = None
except:
if e:
e = None
finally:
e = None
浏览器最后无论如何都会被设置成关闭,但是有的时候就是执行完了所有的步骤之后就是不会自动关闭, 页面一直挂在某一个页面, 然后重新调度该任务,又会自动的完成并且关闭
1
qazwsxkevin 2020-09-13 13:57:37 +08:00
driver.close ()
然后再 driver.quit()试试看? 会不会是 webdriver.exe 的版本匹配问题? |
2
jeeyong 2020-09-13 14:59:29 +08:00
1.chromedriver 和 chrome 版本匹配的问题.
2.内部逻辑出现错误, 异常报错, 未关闭(你的描述可能排除此项) 3.引用的某个库异常, 但是未抛出, 你捕获不到. 但是依旧是错了. 所以卡在那. 常见就这三种. |
3
lusi1990 2020-09-13 15:07:58 +08:00 via Android
加个 try catch ,看下异常。不会无缘无故退出
|
4
wutongshuxia 2020-09-13 15:12:47 +08:00
selenium 确实会存在部分浏览器未关闭的情况,之前有个项目用到集群,然后慢慢机器内存就炸了,然后发现是浏览器未关闭。或者是浏览器到达了数量,无法再请求新浏览器导致连接不上的问题。这个暂时解决办法就是用脚本关闭一些运行比较久的浏览器
|
5
chocotan 2020-09-13 15:17:55 +08:00
我用 java 也会遇到这样的情况,版本都是匹配的...
我现在是定时 kill 进程 |
6
18870715400 OP |
7
jeeyong 2020-09-13 22:19:17 +08:00
|
8
18870715400 OP @jeeyong 是 chrome 50 多的版本
|
9
18870715400 OP @jeeyong 明天可以先试试使用新的版本的 chrome 和 chromedriver , 先跑跑看会不会再出现这种情况
|