如何使用Selenium查找网页中所有按钮元素的所有id属性的值



假设网页中有多个按钮

<button id='xyz'></button>
<button id='abc'></button>
<button id='pqr'></button>

我想要使用selenium的所有按钮的id属性的值

我正在使用这个代码

for button in driver.find_elements(by=By.XPATH,value='//button'):
print(button.get_attribute('id'))

我没有得到任何输出

考虑HTML

<button id='xyz'></button>
<button id='abc'></button>
<button id='pqr'></button>

要提取<button>元素的id属性的值,您必须诱导WebDriverWaitvisbility_of_all_elements_located ()并且使用List Comprehension您可以使用以下定位器策略中的任何一个:

使用
  • TAG_NAME:

    print([my_elem.get_attribute("id") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.TAG_NAME, "button")))])
    
  • 使用<<li>em> CSS_SELECTOR :

    print([my_elem.get_attribute("id") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "button")))])
    

    使用<<li>em> XPATH :

    print([my_elem.get_attribute("id") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//button")))])
    
  • 注意:您必须添加以下导入:

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

最新更新