捕获异常:Selenium Chrome chrome 无法访问

Catch Exception: Selenium Chrome chrome not reachable

我有以下代码,目前可以使用。但是,如果用户关闭 Chrome Windows 或 chrome 崩溃,for 循环中加载的所有文章都会更新并显示错误。 在这种情况下,我需要再次执行 driver.start_driver() 函数。如何捕获 chrome 不可达异常,以便在出现故障时执行 drier.start_driver()?

我尝试了以下方法,但没有用:

try:...
except WebDriverException as e:...

但我得到:

NameError: name 'WebDriverException' is not defined

这是我当前的代码:

driver=driver.start_driver()
    for index, row in listado_productos.iterrows():
        try:
        driver.get(url)
        amount = driver.find_element(By.CSS_SELECTOR, "div.ui-header_subtitle a.test span.ui-subtitle").text
        ...
            db.update_article_date(article_df)
       except Exception as e:
            db.update_article_error(row['product_id'])
driver.close()

这是“Chrome not reachable”错误的回溯:

Traceback (most recent call last):
  File "<string>", line 2, in <module>
  File "c:...\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "c:\...\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "c:\ArchivosSinOnedrive\repositorios\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
  (Session info: chrome=94.0.4606.71)

除了像这样的单次尝试之外,您可以有一个阶梯来处理 NoSuchElementException、WebDriverException 和其他异常,如下所示:

driver=driver.start_driver()
    for index, row in listado_productos.iterrows():
        try:
        driver.get(url)
        amount = driver.find_element(By.CSS_SELECTOR, "div.ui-header_subtitle a.test span.ui-subtitle").text
        ...
            db.update_article_date(article_df)
        except NoSuchElementException as noelement:
            print('do something in case of no such element exception')
        except WebDriverException as driver_exception:
            print('do something in case of webdriver exception')
            print('do something here')
        except Exception as e:
            db.update_article_error(row['product_id'])
driver.close()