我的網頁結果帶有如下 html 標簽,我需要回圈每個值并從表中獲取結果
<div class = "divList">
<select class="form selectList">
<option value="3710">Thu, 04 Nov 2021</option>
<option value="3709">Mon, 01 Nov 2021</option>
<option value="3708">Mon, 01 Nov 2021</option>
....
</select>
</div>
dropdownlist = driver.find_element_by_class_name('divList')
valueslist = (dropdownlist.text).splitlines()
print(valueslist)
sel = Select(driver.find_element_by_xpath("//select[@class='form selectList']"))
for value in valueslist:
print(value)
sel.select_by_visible_text(value)
print('Processing - ', value)
time.sleep(3)
在 2 次迭代后更改值時出現以下錯誤
Thu, 04 Nov 2021
Processing - Thu, 04 Nov 2021
Mon, 01 Nov 2021
Processing - Mon, 01 Nov 2021
Thu, 28 Oct 2021
selenium.common.exceptions.StaleElementReferenceException:訊息:過時的元素參考:元素未附加到頁面檔案
uj5u.com熱心網友回復:
嘗試這個:
dropdownlist = driver.find_element_by_class_name('divList')
valueslist = (dropdownlist.text).splitlines()
print(valueslist)
sel = Select(driver.find_element_by_xpath("//select[@class='form selectList']"))
for value in valueslist:
sel = Select(driver.find_element_by_xpath("//select[@class='form selectList']"))
sel.select_by_visible_text(value)
print('Processing - ', value)
time.sleep(3)
如果您愿意,您可以通過以下方式簡化:
sel = Select(driver.find_element_by_xpath("//select[@class='form selectList']"))
nbritems = len(sel.options)
for i in range(0, nbritems):
sel = Select(driver.find_element_by_xpath("//select[@class='form selectList']"))
txt = sel.options[i].text
sel.select_by_visible_text(txt)
print('Processing - ', txt)
time.sleep(3)
selenium.common.exceptions.StaleElementReferenceException:訊息:過時的元素參考:元素未附加到頁面檔案
字面意思是about,參考的元素已經過期,不再附加到當前頁面。通常,這是因為頁面被重繪 或跳過了,解決方法是,重用 findElement 或 findElements 方法來定位元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/351361.html
