【发布时间】:2018-02-04 23:58:41
【问题描述】:
我正在尝试等待 innerHTML 元素加载。这是我的代码的通用版本:
element = WebDriverWait(driver, 120).until(EC.presence_of_element_located((By.XPATH, XPATH)))
element = element.get_attribute('innerHTML')
元素是表格内的 tr 标签。此代码位于一个循环内,该循环应该在数千个 ajax 页面上每页运行 25 次。运行一定数量后,我继续收到此错误:
selenium.common.exceptions.StaleElementReferenceException: Message: {"errorMessage":"Element is no longer attached to the DOM"...
每次,此错误都源于提供的代码的第二行。这让我相信元素正在加载,但 innerHTML 加载速度不够快,这会引发给定的错误消息。我尝试了很多方法来解决这个问题。
在确认元素存在后,如何让我的代码等待 innerHTML 加载?
【问题讨论】:
-
您知道我们可以等待出现在
innerHTML中的特定子字符串或文本吗? -
它正在从数据库中提取数据。随着循环的运行,元素的innerHTML会发生数百万次变化
-
@alecxe 也许我可以使用表格标题中的 innerHTML?
-
不幸的是,没有提供足够的详细信息来回答这个问题..您能否发布一个示例,说明
element指向的内容以及元素内部 HTML 中的哪些变化?..谢谢! -
是的,当然。
element是表格内的一个单元格(tr 标记),具有一致的表格标题(th 标记)。每个element的内部 HTML 每页更改 25 倍,而每页上的表头都相同
标签: python ajax python-2.7 selenium phantomjs