WebDriverWait 未按预期运行
您正在利用 Selenium 从网页中提取数据。该页面包含一个“custom_cols”按钮,可启动用于列选择的窗口。这个新窗口有时需要几秒钟(具体来说,大约 5 秒)来加载。
为了处理这种延迟,您使用了具有 20 秒延迟的 WebDriverWait。奇怪的是,尽管元素显示在屏幕上,但它有时无法在新窗口中找到元素。此问题大约每十次尝试发生一次。
有趣的是,在代码中的其他位置使用 WebDriverWait 可以按预期工作,确保元素在单击它们之前可见。
您的查询围绕新元素中的原因展开尽管使用 WebDriverWait 来检测窗口的可见性,但窗口仍未被识别为可见。
建议解决方案:
问题源于您在尝试单击元素时使用 WebDriverWait 的 Presence_of_element_ located() 方法而不是 element_to_be_clickable() 方法。
解决此问题,替换以下内容line:
myElem = WebDriverWait(self.browser, delay).until(EC.presence_of_element_located((By.XPATH , xpath)))
with:
myElem = WebDriverWait(self.browser, delay).until(EC.element_to_be_clickable((By.XPATH , xpath)))
了解 WebDriverWait 方法:
下面提供了对上述三个方法的进一步说明methods:
以上是为什么我的 Selenium WebDriverWait 无法在新打开的窗口中找到元素?的详细内容。更多信息请关注PHP中文网其他相关文章!