我正在运行一个表,该表具有一些我需要访问的链接,获取此链接的内容,返回并继续滚动。这些链接没有“ href”属性,您需要单击它们才能工作。但是,当我单击它们以继续前进时,会发生此错误: “过时的元素引用:元素未附加到文档页面”
这是我执行此操作的代码:
tb = driver.find_elements_by_tag_name('table')[1] tbody = tb.find_elements_by_tag_name('tbody')[0]
对于tbody.find_elements_by_xpath('./ tr')中的行: cols = row.find_elements_by_xpath('./ td')
link = cols[0].find_elements_by_tag_name('a')[0]
link.click()
time.sleep(4)
lines_extract = driver.find_elements_by_tag_name('tbody')[0].find_elements_by_xpath('./tr')
for le in lines_extract:
td_num_doc = le.find_elements_by_xpath('./td')[0]
print(td_num_doc)
div_link_back = driver.find_elements_by_tag_name('div')[2]
div_link_back.find_elements_by_tag_name('a')[0].click()
答案 0 :(得分:0)
stale element reference
是在执行分页时找不到html文档时出现的。在这种情况下,您需要重新初始化元素。请尝试以下代码。
link = cols[0].find_elements_by_tag_name('a')[0]
link.click()
time.sleep(4)
lines_extract = driver.find_elements_by_tag_name('tbody')[0].find_elements_by_xpath('./tr')
for le in range(len(lines_extract)):
link = cols[0].find_elements_by_tag_name('a')[0]
link.click()
time.sleep(4)
lines_extract = driver.find_elements_by_tag_name('tbody')[0].find_elements_by_xpath('./tr')
td_num_doc = lines_extract[le].find_elements_by_xpath('./td')[0]
print(td_num_doc)
div_link_back = driver.find_elements_by_tag_name('div')[2]
div_link_back.find_elements_by_tag_name('a')[0].click()
time.sleep(4)
不确定是否对您有帮助。但是,link
单击时我不知道来源。您还必须在循环中同时使用来源,否则会遇到类似的问题。