我想在这个问题开头发言,说我已经阅读了有关该主题的所有其他问题,并试图实施解决方案,但仍然没有成功。 我试图在Quora的推荐屏幕中单击加号按钮:
这是我的代码:
def recommendations():
time.sleep(10)
requests = WebDriverWait(driver, 10).until(unhidden_elements_located((By.TAG_NAME, 'svg')))
for i in range(12):
try:
ActionChains(driver).click(requests[i]).perform()
except selexcep.StaleElementReferenceException as e:
print(e)
在等待页面加载后,它会获得所有plus元素的列表,然后遍历并尝试单击它们。我很确定它仍然可以获取正确的元素,因为该代码可以正常工作,直到它随机开始收到此错误消息为止:
Message: stale element reference: element is not attached to the page document
我现在完全不知道如何解决这个问题。
答案 0 :(得分:0)
在页面加载后,似乎元素未正确加载。如下定义您的元素。
search_input = lambda: driver.find_element_by_name('q')
这是因为调用'search_input()'会重新评估lambda语句,然后再次对该元素进行查找。这样可以通过每次获取对WebElement的新引用来防止陈旧。