假设网页中有多个按钮
<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