如何在 Python Selenium 中等待多个元素加载?

Patricia Arquette
发布: 2024-10-30 03:29:28
原创
222 人浏览过

How to Wait for Multiple Elements to Load in Python Selenium?

Python Selenium:等待加载多个元素

您的任务涉及确保通过 AJAX 加载的动态列表之前具有多个 li 元素进行中。在实际内容可用之前,列表最初会显示一条加载消息。

使用具有自定义条件的 WebDriverWait 的解决方案

建议的方法是使用带有 lambda 函数的 WebDriverWait定义自定义条件。此函数允许您验证定位元素的数量是否超过指定的最小值:

<code class="python">from selenium.webdriver.support import expected_conditions as EC

num_elements = 1
WebDriverWait(driver, timeout).until(
    lambda d: len(d.find_elements_by_css_selector('ul.ltr li[id^="t_b_"] a[id^="t_a_"]')) > num_elements
)</code>
登录后复制

替代方法

  • 使用 ExpectedConditions.presence_of_element_ located (): 此条件验证指定元素是否存在,但不保证其可见性或状态。
  • 使用 ExpectedConditions.visibility_of_all_elements_ located(): 此条件确保定位器中的所有元素都是可见的。这可用于等待特定数量的可见元素,但它要求元素从一开始就存在于 DOM 中。

注意

代码示例中使用的CSS_SELECTOR和XPATH定位器可以修改以匹配您的特定元素标识符。

参考:

  • [如何等待数字使用 Selenium 和 Python 加载的元素数量](https://stackoverflow.com/questions/27176170/how-to-wait-for-number-of-elements-to-be-loaded-using-selenium-and-python )
  • [获取 selenium 中的特定元素](https://stackoverflow.com/questions/35383413/getting-specific-elements-in-selenium)

以上是如何在 Python Selenium 中等待多个元素加载?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!