2016-12-17 2 views
0

테이블이 있으며 특정 행 번호를 찾아야합니다. 이 경우 두 번째 행 (두 번째 tr)에 관심이 있습니다.selenium webdriver를 사용하여 테이블 행 번호 찾기

<table> 
    <thead> 
    <tbody> 
     <tr class="classes mico_models_classes_7 listRowWhite"> 
     <tr class="classes mico_models_classes_8 listRowDark"> 
     <td style="width:130px;">9:00am - 10:30am</td> 
     <td class="noprint enrolledFull" style="width:70px;height:40px;text-align:center;"> </td> 
     <td style="width:200px;"> 
     <a class="eventName" data-eventdescription="Very long spin class" data-eventname="Spinning 90 min" href="javascript://">Spinning 90 min</a> 
     <br> 
     with 
     <a class="classesEmployeeName" title="John Doe" href="javascript://" data-employeeid="5117">John Doe</a> 
     </td> 
    <td style="text-align:right;width:72px;">0 of 20</td> 
    <td>Spin Class</td> 
    </tr> 
    <tr class="classes mico_models_classes_9 listRowWhite"> 
    <tr class="classes mico_models_classes_10 listRowDark"> 
</tbody> 
</table> 

불행하게도, 다음 반환 dataRowIndex에 대한 널 (null) :

String classTittle = "Spinning 90 min"; 
String dataRowIndex = driver.findElement(By.cssSelector("[data-eventname='" + classTitle + "']")).getAttribute("rowIndex"); 

답변

0

당신이 그들을 계산하는 동안 그럴 HTML 요소를 반복하여이 문제를 해결할 수

다음은 HTML입니다. 반복 중에도 액세스 할 수 있습니다.

List<WebElement> element = driver.findElements(By.cssSelector("tr")); 

     int row = 0; 

     for(WebElement w : element){ 

      String elemText = w.getText(); 

      System.out.println(elemText); 

      String clickText = "Spinning 90 min"; 

      if(elemText.contains(clickText)){ 

       w.click(); //do something with the element 

       System.out.println("Text in row " + row + " is " + clickText + " so i clicked it!"); 
      } 

      System.out.println("this was row " + row + "\n"); 

      row++; 
     } 

얻을 것입니다 :

this was row 0 

9:00am - 10:30am Spinning 90 min 
with John Doe 0 of 20 Spin Class 
Text in row 1 is Spinning 90 min so i clicked it! 
this was row 1 


this was row 2 


this was row 3 

당신은 나중에하는 방법으로 특정 로직을 캡슐화 할 수 있습니다. 희망이 도움이 ^^ - d

+0

나는 findelement가 작동하고 iteration을 피할 수 있다고 가정하고 있었지만 작동시키지 못했습니다. 반복은 완벽하게 작동했습니다. –

관련 문제