![](/img/trans.png)
[英]Message: stale element reference: element is not attached to the page document PYTHON selenium
[英]How do I deal with "Message: stale element reference: element is not attached to the page document" in Python Selenium
我正在編寫一個腳本來從網站上抓取產品名稱,按品牌過濾。 某些搜索結果可能包含多個頁面,這就是問題所在。我能夠抓取第一頁,但是當腳本單擊下一頁時,錯誤消息selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
顯示。 下面是我的代碼:
def scrape():
resultList = []
currentPage = 1
while currentPage <= 2:
titleResults = WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'h4.mt-0')))
resultList.append(titleResults)
checkNextPage = WebDriverWait(driver, 30).until(EC.visibility_of_all_elements_located((By.XPATH, "//div/nav/ul/li/a[@aria-label='Next']")))
for cnp in checkNextPage:
nextPageNumber = int(cnp.get_attribute("data-page"))
currentPage += 1
driver.find_element_by_xpath("//div/nav/ul/li/a[@aria-label='Next']").click()
for result in resultList[0]:
print("Result: {}".format(result.text))
我認為錯誤是在調用.click()
時觸發的。 在求助於在此處發布此問題之前,我在 inte.net 上進行了大量搜索,因為要么我不理解其他文章/帖子的解決方案,要么它們不適用於我的情況。
Stale Element 表示舊元素或不再可用的元素。
我認為錯誤是由最后一行引起的。
您應該在元素變得不可用之前提取元素文本。
def scrape():
resultList = []
currentPage = 1
while currentPage <= 2:
titleResults = WebDriverWait(driver,
10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'h4.mt-0')))
// Extract elements text
results_text = [titleResults[i].text for i in range(0, len(titleResults))]
resultList.extend(results_text)
checkNextPage = WebDriverWait(driver, 30).until(EC.visibility_of_all_elements_located((By.XPATH, "//div/nav/ul/li/a[@aria-label='Next']")))
for cnp in checkNextPage:
nextPageNumber = int(cnp.get_attribute("data-page"))
currentPage += 1
driver.find_element_by_xpath("//div/nav/ul/li/a[@aria-label='Next']").click()
print("Result: {}".format(resultList))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.