根据要求,我需要一页中所有选项卡数据的总记录值。一页中总共有6个标签,其中包含大量不同的数据集->对于不同的标签,加载时间不同。为了检查加载是否完成,我使用了WebDriverWait来显示 Total no。向下滚动到页面末尾时显示的记录数。
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;
}
请提出如何分别获取所有选项卡的总记录值的建议。 谢谢!!!
答案 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);
});
您可以检索数据并保存,然后导航到其他选项卡并重复以上操作。