首页  >  文章  >  后端开发  >  为什么 Selenium 在滚动 Amazon 搜索结果时会抛出 StaleElementException?

为什么 Selenium 在滚动 Amazon 搜索结果时会抛出 StaleElementException?

Susan Sarandon
Susan Sarandon原创
2024-11-15 07:02:02341浏览

Why Does Selenium Throw a StaleElementException When Scrolling Through Amazon Search Results?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn