一格内的硒计数div

问题描述

我要计算硒中一个div内的div。

enter image description here

到目前为止,这是我的代码,但是我不明白为什么这不起作用。返回长度为0。

available = len(browser.find_elements_by_xpath("//div[@class='sc-AykKC.sc-AykKD.slug__RaffleContainer-sc-10kq7ov-2.eujCnV']/div"))

解决方法

要使用Selenium在其父项<div>中将值为 alt 属性值为 Closed <div>个标签计数,您可以使用以下基于Locator Strategies中的一个:

  • 使用text()

    available = len(browser.find_elements_by_xpath("//h2[text()='List']//preceding::div[1]//div[@alt='Closed']"))
    
  • 使用contains()

    available = len(browser.find_elements_by_xpath("//h2[contains(.,'List')]//preceding::div[1]//div[@alt='Closed']"))
    

理想情况下,您必须为visibility_of_all_elements_located()引入WebDriverWait,并且可以使用以下任意一种 Locator Strategies

  • 使用text()

    available = len(WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.XPATH,"//h2[text()='List']//preceding::div[1]//div[@alt='Closed']"))))
    
  • 使用contains()

    available = len(WebDriverWait(driver,"//h2[contains(.,'List')]//preceding::div[1]//div[@alt='Closed']"))))
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC