所以我有一個 selenium python 腳本,它偶爾會在我的代碼的不同部分遇到以下錯誤:
Exception has occurred: WebDriverException
Message: unknown error: cannot determine loading status
from target frame detached
但是當我遇到這個錯誤時,如果我重新運行程式而不做任何更改,一切都會再次正常運行(所以我知道這要么是網站的問題,要么是 webdriver 的問題)。同時,我想知道如果遇到 WebDriverException,是否有辦法告訴 python 重新啟動程式。任何幫助將不勝感激,謝謝。
uj5u.com熱心網友回復:
您可以嘗試os.execv(),根據here,它可以重新啟動python腳本,但是您需要使用這個類似C的函式來清理緩沖區等sys.stdout.flush()
try:
<your block of code>
except WebDriverException:
print(<Your Error>)
import os
import sys
sys.stdout.flush()
os.execv(sys.argv[0], sys.argv)
uj5u.com熱心網友回復:
- 您可以簡單地使用該
os模塊來執行此操作:os.execv(sys.argv[0], sys.argv) - 使用
main()函式作為程式的起點,并在需要重新啟動時再次觸發該函式。就像是
def foo1():
return
def foo2():
try:
...
except:
main()
def main():
foo1()
foo2()
if __name__ == "main":
main()
uj5u.com熱心網友回復:
如果由于找不到某個標簽而發生錯誤,您可以等待
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
或最壞的情況
browser.implicitly_wait(5)
或者
time.sleep(5)
等待 5 秒以使元素出現
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/479264.html
