报错的原因:
所引用的元素已过时,不再依附于当前页面。通常情况下,这是因为页面进行了刷新或跳转。在先获取xpath列表,再引用列表时,容易出现此问题。
解决方法:
重新定位元素
代码示例:
# 旧代码(报错)
lists = self.root.find_elements_by_xpath('/html/body/table[4]/tbody/tr[2]/td/a')
for i in lists:
self.root.get(i.get_attribute(''href))
# 新代码(解决方法)
lists = self.root.find_elements_by_xpath('/html/body/table[4]/tbody/tr[2]/td/a')
for j in range(len(lists)):
self.root.find_elements_by_xpath('/html/body/table[4]/tbody/tr[2]/td/a')[j].click()