【发布时间】:2021-03-20 10:10:36
【问题描述】:
有什么方法可以获取某个类的所有元素并放入一个列表中?例如:
<li class="Fruit">Apple</li>
<li class="Fruit">Orange</li>
我想把 Apple 和 Orange 放在一个列表中。
【问题讨论】:
标签: python selenium xpath css-selectors classname
有什么方法可以获取某个类的所有元素并放入一个列表中?例如:
<li class="Fruit">Apple</li>
<li class="Fruit">Orange</li>
我想把 Apple 和 Orange 放在一个列表中。
【问题讨论】:
标签: python selenium xpath css-selectors classname
driver.find_elements_by_class_name("Fruit")
查找元素返回给定条件的所有元素,这里是类名,它返回列表
您可以将文本打印为:
https://selenium-python.readthedocs.io/locating-elements.html
elems = driver.find_elements_by_class_name("Fruit")
for elem in elems:
print(elem.text)
或
elemsText = [i.text for i in driver.find_elements_by_class_name("Fruit")]
print(elemsText]
【讨论】:
提取和打印文本,例如Apple、Orange 等来自所有 <li class="Fruit"> 使用 Selenium 和 python 您可以使用以下任一 Locator Strategies:
使用class_name 和get_attribute("textContent"):
print([my_elem.get_attribute("textContent") for my_elem in driver.find_elements_by_class_name("Fruit")])
使用css_selector 和get_attribute("innerHTML"):
print([my_elem.get_attribute("innerHTML") for my_elem in driver.find_elements_by_css_selector(".Fruit")])
使用xpath和text属性:
print([my_elem.text for my_elem in driver.find_elements_by_xpath("//*[@class='Fruit']")])
理想情况下,您需要为visibility_of_all_elements_located() 诱导WebDriverWait,您可以使用以下任一Locator Strategies:
使用CLASS_NAME 和get_attribute("textContent"):
print([my_elem.get_attribute("textContent") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "Fruit")))])
使用CSS_SELECTOR 和get_attribute("innerHTML"):
print([my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, ".Fruit")))])
使用XPATH和text属性:
print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//*[@class='Fruit']")))])
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
链接到有用的文档:
get_attribute() 方法 Gets the given attribute or property of the element.
text 属性返回 The text of the element.
【讨论】: