2016-12-17 11 views
0

テーブルがあり、特定の行番号を見つける必要があります。この場合、私は2行目(2番目のtr)に興味があります。ここでselenium webdriverを使用してテーブルの行番号を見つける

はHTMLです:

残念ながら
<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

あなたがそれらをカウントしながら、TRの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が動作し、反復を避けることができると仮定していましたが、動作させることができませんでした。あなたの反復は完全に機能しました。 –

関連する問題