我有很多具有相同类名但具有不同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>


我需要提取这些ID。
对于单个列表元素,这不是问题:

driver.find_element_by_css_selector(".test.class").get_attribute("id")


但是我需要以某种方式到达下一个ID。
如果尝试find_elements_by...我收到以下异常:


  “列表”对象没有属性'get_attribute'


有没有办法提取它们?

最佳答案

您可以使用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].get_attribute("id")

secondId将具有222-22-222

10-05 20:52
查看更多