2016-07-26 60 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,不客氣 –

相關問題