捕获异常: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()
我有以下代码,目前可以使用。但是,如果用户关闭 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()