我有一个python函数,应该单击产品的所有选项:
submit_button = driver.find_element_by_id('quantityactionbox') elementList = submit_button.find_elements_by_tag_name("option") for x in elementList: x.click()
单击2个元素后,出现此错误:
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
您能否告诉我为什么出现这种错误,以及如何成功完成所有要素?
您已经有了解释,并且“元素未附加到DOM”上的解决方案:
用于在Web应用程序中模拟选项卡式UI的一种常用技术是为每个选项卡准备DIV,但一次仅附加一个,其余的存储在变量中。在这种情况下,您的代码很可能引用了不再附加到DOM的元素(即,其祖先是“ document.documentElement”)。 如果在这种情况下WebDriver抛出陈旧的元素异常,即使该元素仍然存在,该引用也会丢失。您应该丢弃所拥有的当前引用并替换它,可能是通过将元素附加到DOM上再次找到它来进行。
用于在Web应用程序中模拟选项卡式UI的一种常用技术是为每个选项卡准备DIV,但一次仅附加一个,其余的存储在变量中。在这种情况下,您的代码很可能引用了不再附加到DOM的元素(即,其祖先是“ document.documentElement”)。
如果在这种情况下WebDriver抛出陈旧的元素异常,即使该元素仍然存在,该引用也会丢失。您应该丢弃所拥有的当前引用并替换它,可能是通过将元素附加到DOM上再次找到它来进行。