首页 > 解决方案 > 如何等待使用 Selenium 和 Python 加载的元素数量

问题描述

假设我正在使用选择器进行选择:

//img[@data-blabla]

我想等待 10 个元素被加载,而不仅仅是一个。

这将如何修改?我在猜测索引[9]

WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.XPATH, '//img[@data-blabla][9]')))

标签: pythonseleniumselenium-webdriverwebdriverwebdriverwait

解决方案


要等待10 个元素加载,您可以使用该lambda功能,您可以使用以下任一Locator Strategies

  • 使用>

    myLength = 9
    WebDriverWait(browser, 20).until(lambda browser: len(browser.find_elements_by_xpath("//img[@data-blabla]")) > int(myLength))
    
  • 使用==

    myLength = 10
    WebDriverWait(browser, 20).until(lambda browser: len(browser.find_elements_by_xpath("//img[@data-blabla]")) == int(myLength))
    

推荐阅读