使用selenium webdriver查找表行号

时间:2016-12-17 20:45:35

标签: java selenium selenium-webdriver automated-tests

我有一张桌子,需要找到一个特定的行号。在这种情况下,我对第二行(第二轮)感兴趣。

这是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");

1 个答案:

答案 0 :(得分: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