我有以下代碼,目前正在運行。但是,如果用戶關閉 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無法訪問”錯誤的追溯:
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)
uj5u.com熱心網友回復:
除了像這樣的單次嘗試,您可以有一個梯子來處理 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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/324929.html
