0

我想先说这个问题,我已经查看了有关该主题的所有其他问题并尝试实施解决方案,但仍然没有成功。我正在尝试单击 Quora 上推荐屏幕中的加号按钮:

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)

在等待页面加载后,它会获取所有加号元素的列表,然后通过并尝试单击它们。我很确定它仍然可以获取正确的元素,因为此代码曾经可以正常工作,直到它随机开始收到此错误消息:

Message: stale element reference: element is not attached to the page document

在这一点上,我完全不知道如何解决这个问题。

4

1 回答 1

0

页面加载后似乎元素未正确加载。定义你的元素,如下所示。

search_input = lambda: driver.find_element_by_name('q')

这是因为调用 'search_input()' 会重新评估 lambda 语句并再次对元素进行查找。这通过每次获取对 WebElement 的新引用来防止过时。  

于 2019-03-02T06:59:27.687 回答