Python 是否可以从几个同名元素中获取_attribute()?
我有许多具有相同类名但id不同的列表元素 例如:Python 是否可以从几个同名元素中获取_attribute()?,python,list,selenium,selenium-webdriver,css-selectors,Python,List,Selenium,Selenium Webdriver,Css Selectors,我有许多具有相同类名但id不同的列表元素 例如: <li class="test class" id="111-11-111"> pass </li> <li class="test class" id="222-22-222"> pass </li> <li class="test class" id="333-33-333"> pass </li> 但我需要找到下一个身份证。 如果尝试通过……查找元素,我会收到以下异常
<li class="test class" id="111-11-111"> pass </li>
<li class="test class" id="222-22-222"> pass </li>
<li class="test class" id="333-33-333"> pass </li>
但我需要找到下一个身份证。
如果尝试通过……查找元素,我会收到以下异常:
“列表”对象没有属性“获取属性”
有办法提取它们吗?您可以使用xpath:
listOfLi = driver.find_elements_by_xpath("//li[class='test class']")
或css选择器:
listOfLi = driver.find_elements_by_css_selector(".test.class")
您可以通过逐个索引每个li元素来访问它们:
for eachLiElement in listOfLi:
string = eachLiElement.get_attribute("id")
string
将为您提供每个元素的id
如果你只想获得第二个id,你可以通过
secondId=listOfLi[1]。获取属性(“id”)
secondId
将使用get_attribute()
提取所有
标记的id属性值,您可以使用以下解决方案:
print([my_element.get_attribute("id") for my_element in driver.find_elements_by_css_selector('li.test.class')])
是的,通过返回在列表上循环find_元素,并从每个元素中提取id,就像使用find_元素时一样
print([my_element.get_attribute("id") for my_element in driver.find_elements_by_css_selector('li.test.class')])