无法获得一页中多个选项卡的总记录值

时间:2019-10-25 00:29:24

标签: javascript java selenium

根据要求,我需要一页中所有选项卡数据的总记录值。一页中总共有6个标签,其中包含大量不同的数据集->对于不同的标签,加载时间不同。为了检查加载是否完成,我使用了WebDriverWait来显示 Total no。向下滚动到页面末尾时显示的记录数。 Page View with 6 tabs

    JavascriptExecutor js = (JavascriptExecutor)driver;

    js.executeScript("arguments[0].click();", WebElement-Tab1);
    waitForTotalRecords();

点击tab1之后,然后在 waitForTotalRecords()函数中,使用以下代码:

    JavascriptExecutor js = (JavascriptExecutor)driver;

    js.executeScript("arguments[0].scrollIntoView();", my-WebElemnt)

    String TotalRecords = my-WebElemnt.getText().toString();

    System.out.println("The Total number of records are "+TotalRecords);

但是它不起作用,总是给我总数。的记录仅用于第一个标签

根据我的理解,我觉得这是因为隐藏的元素,因为当用户单击下一个选项卡时,它仍然引用第一个选项卡-总记录。为此,我也尝试了以下代码:

public String getText(List<WebElement> e)
{
    int size=e.size();
    String Value = "False";

    System.out.println("The size is "+size);

    for(int i=0;i<size;i++)
    {
        int x=e.get(i).getLocation().getX();

        if(x!=0)
        {
            String TextValue = e.get(i).getText().toString();

            return TextValue;
        }

    }
    return Value;

}

请提出如何分别获取所有选项卡的总记录值的建议。 谢谢!!!

1 个答案:

答案 0 :(得分:0)

导航到页面后,使用以下方法检查页面是否已完全加载

<div id="field">

      <div id="leftPalette">
         <div class="paintingCubes" id="red"></div>
         <div class="paintingCubes" id="blue"></div>
      </div>

      <div id="canvas">
         <div id="row1">
            <div id="r1d1" class="big-rect"></div>
            <div id="r1d2" class="big-rect"></div>            
         </div>
         <div id="row2">
            <div id="r2d1" class="big-rect"></div>
            <div id="r2d2" class="big-rect"></div>    
         </div>
      </div>

      <div id="clear"></div>
</div>     


$(".paintingCubes").on('click', function(){
    $(".paintingCubes").removeClass("selected"); // clearing previous selection
    $(this).addClass("selected");// adding selection to clicked cube
});

$(".big-rect").on("click", function(){
    var color = $(".paintingCubes.selected").css("background-color");
  $(this).css("background-color", color);
});

您可以检索数据并保存,然后导航到其他选项卡并重复以上操作。