【发布时间】:2021-07-09 06:05:45
【问题描述】:
我正在使用 Selenium 运行一个进程并尽可能多地处理错误并为少数人创建自定义异常,但是如果进程中确实发生意外错误,我会遇到问题 Selenium 将继续运行并占用资源/内存,除非明确关闭下来,有没有更好的方法来处理它而不是将所有东西都包裹在 try except 和 inside 除了关闭 Selenium 之外?非常感谢
我想要某种“信号”,以防发生错误将错误发送到哨兵 io 并从 Selenium 释放 ram 空间
简单例子
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.example.com')
raise Exception()
如果你不明确说driver.quit() 它永远不会关闭
依赖https://pypi.org/project/webdriver-manager/ https://pypi.org/project/selenium/
再举一个例子
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
class Example:
def __init__(self):
self.driver = webdriver.Chrome(ChromeDriverManager().install())
self.test()
def test(self):
# Random unexpected error occurs
# This case driver "doesnt" exist
driver.get('https://www.example.com')
Example()
类正在从另一个文件运行
我最终这样做了
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
_driver = webdriver.Chrome(ChromeDriverManager().install())
class Example:
def __init__(self, driver):
self.driver = driver
self.test()
def test(self):
# Random unexpected error occurs
# This case driver "doesnt" exist
driver.get('https://www.example.com')
try:
Example(_driver)
except Exception as e:
print(e)
_driver.quit()
【问题讨论】:
-
能否请您提供一些代码/输入/输出?
-
请稍等