使用 selenium 抓取数据时,处理需要时间出现的动态元素至关重要。但是,用户遇到了一个问题:WebDriverWait 应该暂停执行直到元素可见,但它没有按预期工作。此问题仅发生在元素可见但 WebDriverWait 无法找到它的孤立实例中。
根据用户的代码,他们使用具有 20 秒延迟的 WebDriverWait 和 Presence_of_element_ located() 方法。元素定位器正在搜索打开新窗口的按钮,允许用户选择自定义列。
要解决此问题,建议使用 element_to_be_clickable() 而不是 Presence_of_element_ located ()。 Presence_of_element_ located() 方法仅确保该元素存在于 DOM 上,而 element_to_be_clickable() 则验证该元素不仅可见而且可点击。此更改应该解决偶尔无法在新窗口中选择元素的问题,即使它们是可见的。
为了进一步澄清情况,让我们检查这三个方法提到:
在这种特定情况下,使用 element_to_be_clickable() 确保自定义列按钮不仅存在且可见,而且已启用并可供单击。这应该可以消除在新窗口中选择元素时偶尔失败的情况。
以上是为什么我的 Selenium WebDriverWait 不工作,即使元素可见?的详细内容。更多信息请关注PHP中文网其他相关文章!