我有以下代碼片段:
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 60)
for _ in range(10):
try:
driver.get(URL)
wait.until(EC.presence_of_element_located((By.XPATH, ".//*[@class='sr-match-default__status-pre']")))
driver.close()
# do something
except TimeoutException:
time.sleep(300)
continue
else:
driver.close()
這會產生一個selenium.common.exceptions.InvalidSessionIdException,但我不知道為什么。
當我查看錯誤時,檔案說以下內容:
如果給定的會話 ID 不在活動會話串列中,則發生,這意味著會話不存在或不活動。
我的代碼不是這種情況。在我的腳本/代碼的前面,我driver在關閉它之前成功定義并使用了它。此外,driver它能夠毫無問題地檢索 URL。請指教
完整的錯誤日志如下所示:
File "/scheduler.py", line 24, in get_new_matches
driver.get(URL)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 436, in get
self.execute(Command.GET, {'url': url})
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 424, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSessionIdException: Message: invalid session id
Stacktrace:
0 chromedriver 0x0000000102fe7159 chromedriver 5120345
1 chromedriver 0x0000000102f74b13 chromedriver 4651795
2 chromedriver 0x0000000102b64d1f chromedriver 392479
3 chromedriver 0x0000000102b8ce94 chromedriver 556692
4 chromedriver 0x0000000102bb7abc chromedriver 731836
5 chromedriver 0x0000000102bb5885 chromedriver 723077
6 chromedriver 0x0000000102bb5127 chromedriver 721191
7 chromedriver 0x0000000102b3d7da chromedriver 231386
8 chromedriver 0x0000000102fa438d chromedriver 4846477
9 chromedriver 0x0000000102fbe21c chromedriver 4952604
10 chromedriver 0x0000000102fc3a12 chromedriver 4975122
11 chromedriver 0x0000000102fbeb4a chromedriver 4954954
12 chromedriver 0x0000000102f995b0 chromedriver 4801968
13 chromedriver 0x0000000102b3c8ae chromedriver 227502
14 libdyld.dylib 0x00007fff6757dcc9 start 1
15 ??? 0x0000000000000002 0x0 2
uj5u.com熱心網友回復:
您在 中缺少一條break陳述句for,沒有它,代碼表現為回圈不成功,并執行else您driver第二次關閉的塊。請參閱為什么 python 在 for 和 while 回圈之后使用“else”?以獲得更詳細的解釋。
break在塊末尾添加陳述句try應該可以解決問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/451813.html
