2016-07-26 59 views
2

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

有没有办法提取它们?

+1

是,环比列表find_elements_by回报,从各个正好拉ID正如你在使用find_element时所做的那样 –

+0

@PadraicCunningham谢谢 –

回答

3

您可以使用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

+0

,这正是我需要的 –

+0

@Greeneyesamurai,不客气 –

相关问题