在此应用程序中:任务是逐个单击每个报告链接,并从报告页面获取报告的标题标题。
因此它会验证报告是否正确打开数据。
由于所有报告中都没有共同的x路径,因此 捕获报告标题我应用了一个通用的x路径:这给了我报告页面中的标题列表.....后来我收集了零索引的标题,即。主标题
问题1:报告很少:这个x路径没有意义,它找不到任何东西.....并且在这些报告中存在视图按钮...点击视图打开报告
问题2:标题格式在右侧或左侧对齐的报告很少
根据我的代码:很难抓住他们......有4个人 一个插槽中有80个这样的报告。其中x path没有给出任何内容,如图所示 附件 根据代码应该应用什么逻辑来捕获视图.... 使用页面工厂:
@FindAll({
@FindBy(how = How.XPATH, using = ".//table//tr[1]/th")
})
public List<WebElement> view_ReportPDf_page;
List<WebElement> lis= namedreportviewlinks;
///// TO get the report links within
int count=0;
for (int j = 0; j < lis.size(); j++) {
WebElement e2 = lis.get(j);
((JavascriptExecutor)
driver).executeScript("arguments[0].scrollIntoView(true);",e2);
e2.click();
for (String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
}
Thread.sleep(1000);
List<WebElement> lis2= ld.view_ReportPDf_page;
for(WebElement headers:lis2)
{
headers=lis2.get(0);
System.out.println(headers.getText()+"--------------------"+count);
break;
}
driver.close();
count++;
for (String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
}
}
ld.Dnetsubcategoryreport_backbutton.click();
}
答案 0 :(得分:0)
如果查看按钮出现在th标签下,则可以使用findElements()方法检查是否存在此按钮。如果存在,请单击它,否则单击报告链接。 e.g。
如果(driver.findElements(By.name(&#34;查看&#34;))&大小大于0) { //单击“查看”按钮的逻辑 } 其他 { //点击报告链接 }
如果报告表是页面上唯一的表,则可以使用tagName作为th来定位元素。 (注意:所有报告链接都应该在标签下,然后可以应用此方法。)
希望这有帮助!