我故意嘗試定位錯誤的元素,以便我可以呼叫 TimeoutException,然后再次呼叫該函式,但我看到了錯誤堆疊跟蹤,但它不起作用。
代碼:
def open_browser_func():
global driver
driver = webdriver.Chrome(service=ser)
wait = WebDriverWait(driver, 20)
driver.get("https://twitter.com/i/flow/login")
print("Opening login page")
try:
def sign_in_acc():
loginuser = wait.until(EC.visibility_of_element_located((By.NAME, "textt")))
loginuser.send_keys("Username", Keys.RETURN)
sign_in_acc_timer = threading.Timer(5, sign_in_acc)
sign_in_acc_timer.start()
except TimeoutException:
print("Username input crashed. Retrying now...")
def retry_sign_in():
driver.quit()
return open_browser_func()
retrytimer = threading.Timer(5, retry_sign_in)
retrytimer.start()
return driver
錯誤:
File "C:\Users\Cassano\AppData\Roaming\Python\Python38\site-packages\selenium\webdriver\support\wait.py", line 89, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
Backtrace:
Ordinal0 [0x00F46903 2517251]
Ordinal0 [0x00EDF8E1 2095329]
Ordinal0 [0x00DE2848 1058888]
Ordinal0 [0x00E0D448 1233992]
Ordinal0 [0x00E0D63B 1234491]
Ordinal0 [0x00E37812 1406994]
Ordinal0 [0x00E2650A 1336586]
Ordinal0 [0x00E35BBF 1399743]
Ordinal0 [0x00E2639B 1336219]
Ordinal0 [0x00E027A7 1189799]
Ordinal0 [0x00E03609 1193481]
GetHandleVerifier [0x010D5904 1577972]
GetHandleVerifier [0x01180B97 2279047]
GetHandleVerifier [0x00FD6D09 534521]
GetHandleVerifier [0x00FD5DB9 530601]
Ordinal0 [0x00EE4FF9 2117625]
Ordinal0 [0x00EE98A8 2136232]
Ordinal0 [0x00EE99E2 2136546]
Ordinal0 [0x00EF3541 2176321]
BaseThreadInitThunk [0x770EFA29 25]
RtlGetAppContainerNamedObjectPath [0x77B47A9E 286]
RtlGetAppContainerNamedObjectPath [0x77B47A6E 238]
我所看到的只是日志中的 TimeoutException,但不是我打算呼叫來處理它的。似乎有什么問題?
uj5u.com熱心網友回復:
您正在等待不同執行緒中的元素。一旦你打電話,sign_in_acc_timer.start()你就會啟動并行執行緒,在那里等待正在執行并open_browser_func()完成。如果您想在子執行緒中捕獲例外,則可能值得閱讀Catch a thread's exception in the caller thread?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/391979.html
上一篇:可以使用Beautifulsoup查找被其他包裹元素隱藏的元素嗎?
下一篇:chromedriver不再運行,因此ChromeDriver假設Chrome已通過Python使用Selenium崩潰錯誤
