以下代码行在我的Python脚本中执行:
driver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options = chrome_options)
此行可能会失败或成功,具体取决于明显的随机条件(这是由于正在加载的扩展,但这与此无关)。
问题在于,即使此行失败并引发WebDriverException
,Chromium的实例仍会产生,最终会泛滥我的整个桌面,因为我在while循环中运行此行直到它正常工作。
以下代码块不起作用,因为未定义驱动程序。
try:
driver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options = chrome_options)
except WebDriverException:
driver.quit()
如何以聪明的方式做到这一点?
答案 0 :(得分:0)
正如您所提到的,您有以下几行:
driver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options = chrome_options)
此行可以是fail
或succeed
。因此有2个用例可以解决如下:
Success
:如果上面提到的代码行为Success
,我们将立即使用driver.quit()
,如下所示:
try:
driver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options = chrome_options)
#other code
driver.quit()
Failure
:如果上面提到的代码行为Failure
,我们将使用taskkill模块中的os命令强行杀死 chromedriver
process
,如下所示:
import os
#other code
try:
driver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options = chrome_options)
#other code
driver.quit()
except WebDriverException:
os.system("taskkill /im chromedriver.exe")
通过命令webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options = chrome_options)
,无论是否生成Chromium
会话,我们都会在我们的代码中生成一个单独的chromedriver
会话。如果您想要终止Chromium
会话,您还必须添加以下行:
os.system("taskkill /im chrome.exe")