";过期元素引用:元素未附加到页面文档";循环期间出错



我有这样的代码,我在其中抓取网店主页的产品链接,然后尝试循环浏览所有链接,从每个产品中抓取信息。

这段代码在第一个循环中运行得很好(它打开第一个产品页面,然后返回主页(,但在第二个循环中,我收到错误消息";陈旧的元素引用:元素未附加到页面文档中;。

from selenium.webdriver.support import expected_conditions as EC
wait_variable = WebDriverWait(driver, 15)
product_links = driver.find_elements(By.XPATH, './/a[@class="product-item-link"]')
for link in product_links:
wait_variable.until(EC.element_to_be_clickable(link)).click()

#Scrape info from product

driver.back()

StaleElementReferenceException发生在您尝试使用以前找到的元素时,该元素已不在您所在的网页上。如果您离开该页面,即使稍后返回到同一个页面,也会发生这种情况。您需要重新找到元素才能使用它,并且必须重新思考如何使用现有的循环,这是行不通的。也许可以抓取链接,然后在一个新的选项卡中打开它,这样你就不需要在循环过程中离开起始页。

最新更新