Selenium 的 StaleElementException:在 Python 中遍历网页
使用 Selenium WebDriver 遍历 Amazon 搜索结果时,一些用户在第五个页面遇到 StaleElementException或第二页。当 Selenium 尝试与 DOM(文档对象模型)中已更改或消失的元素交互时,会发生此错误。
提供的代码片段突出显示了向下滚动页面以找到页码栏的困难,导致“driver.execute_script”行上出现 StaleElementException。 “StaleElementReferenceException”消息表示引用的元素(具有类“pagnCur”)不再有效。
虽然原始方法旨在迭代特定数量的页面,但所提供的解决方案通过不断地简化任务单击“下一步”按钮直至其被禁用。此方法依赖 WebDriverWait 来等待“下一步”按钮元素变得可单击。如果 WebDriverWait 超时(默认为 10 秒),循环将中断,假设没有更多页面可供导航。
需要注意的是,“implicitly_wait(10)”会等待,直到元素出现在DOM 长达 10 秒,而不是完整的 10 秒。如果较早找到该元素,则“implicitly_wait”时间范围结束。为了确保可靠的等待,建议使用显式等待,例如带有特定元素定位器的“WebDriverWait”。
以上是为什么 Selenium 在滚动 Amazon 搜索结果时会抛出 StaleElementException?的详细内容。更多信息请关注PHP中文网其他相关文章!