Java 如何收集应用程序中所有报表的标题
在此应用程序中:任务是逐个单击每个报告链接,并从报告页面获取报告的标题 因此,它会验证报告是否正确打开了数据 由于all报告中没有公共x路径,因此Java 如何收集应用程序中所有报表的标题,java,selenium,selenium-webdriver,automation,Java,Selenium,Selenium Webdriver,Automation,在此应用程序中:任务是逐个单击每个报告链接,并从报告页面获取报告的标题 因此,它会验证报告是否正确打开了数据 由于all报告中没有公共x路径,因此 为了捕获报告标题,我应用了一个通用的x路径:它为我提供了报告页面中标题的列表……后来我收集了索引为零的标题,即主标题 问题1:很少有报告显示:此x路径没有意义,它找不到任何内容……在这些报告中,存在“视图”按钮……单击“视图”打开报告 问题2:几乎没有标题格式是左右对齐的报告 根据我的密码:很难抓住他们……一共有4个 80份此类报告中的一份。其中x路
为了捕获报告标题,我应用了一个通用的x路径:它为我提供了报告页面中标题的列表……后来我收集了索引为零的标题,即主标题 问题1:很少有报告显示:此x路径没有意义,它找不到任何内容……在这些报告中,存在“视图”按钮……单击“视图”打开报告 问题2:几乎没有标题格式是左右对齐的报告 根据我的密码:很难抓住他们……一共有4个 80份此类报告中的一份。其中x路径不提供任何内容,如中所示 附件 根据代码,捕获视图应该应用什么逻辑。。。。 使用页面工厂:
@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();
}
@FindAll({
@FindBy(how=how.XPATH,使用=“.//table//tr[1]/th”)
})
公共列表查看报告PDF页面;
List lis=namedreportviewlinks;
/////要在中获取报告链接,请执行以下操作:
整数计数=0;
对于(int j=0;j
希望这有帮助 上面显示的两个图像是:两个不同的报告页面。。。您可以像第一次单击链接1一样使用它们—打开最上面的报告,然后单击链接2—打开带有视图链接的第二个报告……两者之间的区别是:一个直接使用文本打开,而另一个使用“视图”链接打开,如图所示,单击它进一步在同一页面中打开类似的报告。因为我已经创建了一个通用的x路径来获取标题,我应该在两者之间实现什么逻辑来切换到视图链接?您可以应用类似的逻辑。切换到新打开的页面,验证是否存在查看链接,然后单击它,否则从新打开的报告页面获取文本。