2016-07-26 1 views
2

동일한 클래스 이름을 가지고 있지만 다른 ID를 가진 많은 목록 요소가 있습니다.같은 이름의 여러 요소에서 get_attribute()를 사용할 수 있습니까?

예 :

<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> 

는 그리고 나는 그 아이디의를 추출해야합니다. 는 단일 목록 요소에 대해 그것은 문제가되지 않습니다 :

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

그러나 나는 어떻게 든 다음 ID 년대에 도달해야합니다.

'목록'개체가 어떤 속성 'get_attribute'가 없습니다 : find_elements_by...하려고하면 나는 다음과 같은 예외가 발생합니다.

추출 할 방법이 있습니까?

listOfLi = driver.find_elements_by_xpath("//li[class='test class']") 

또는 CSS 선택기 : 하나에 의해 그들을 하나를 인덱싱하여 각 리 요소에 액세스 할 수 있습니다

listOfLi = driver.find_elements_by_css_selector(".test.class") 

가 :

for eachLiElement in listOfLi: 
    string = eachLiElement.get_attribute("id") 

string 줄 것이다

+1

예, 목록 find_elements_by 반환을 통해 루프 및 각 정확히에서 ID를 당겨해야합니다

secondId = listOfLi[1].get_attribute("id")

secondId에 의해 그것을 할 수 있습니다 당신이 find_element를 사용할 때했던 것처럼 –

+0

@PadraicCunningham은 –

답변

3

당신은 XPath를 사용할 수 있습니다 각 요소의 ID입니다. 당신은 단지 두 번째 ID를 얻고 싶다면

, 당신은 222-22-222

+0

덕분에 감사합니다, 그것은 제가 필요한 것입니다. –

+0

@Greeneyesamurai, 당신은 환영합니다. –

관련 문제