我正在使用Python的Selenium版本遍歷Select元素選項。它在網站上運行得很好,但在另一個網站上運行得很好,出現錯誤:Message: stale element reference: element is not attached to the page document
我當然查了它,但是我發現的答案對我沒有幫助。我使用time.sleep()
等待頁面加載,我可以看到它正在瀏覽器中加載。我不知道我該怎麼處理它。Selenium:陳舊元素引用:元素未附加到Python中的頁面文檔中
如何它看起來在代碼:
options = Select(driver.find_element_by_xpath("my_element's_xpath")).options
for option in options:
option.click()
sleep(5)
它工作正常第一次運行,第二輪我得到的錯誤。
這裏是在開發工具中的鉻元素選擇: screenshot 我認爲這可能都與沒有它周圍<option>
標籤第一選擇選項的東西,但我不知道如何將它從DOM中刪除。
你確定選擇的項目不會導致重新加載頁面添加
sleep(2)
(從from time import sleep
拍攝)?在這種情況下,存儲在'options'變量中的DOM元素將不再可用。是的,新頁面上可能有相同的元素,但它可能是一個不同的元素。 – J0HN哦,所以我檢查了網絡,是的,它確實重新加載了頁面。有沒有辦法解決它?編輯:我相信用一種方式存儲選項名稱,然後將這個名稱應用於新的選項集可能? –
是的,你需要做的是在每次迭代時刷新'Select(...)'。比選項列表將有效。 – J0HN