如何收集应用程序中所有报告的标题标题

时间:2017-04-18 04:58:48

标签: java selenium selenium-webdriver automation

enter image description here enter image description here 在此应用程序中:任务是逐个单击每个报告链接,并从报告页面获取报告的标题标题。

因此它会验证报告是否正确打开数据。

由于所有报告中都没有共同的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();

 }

1 个答案:

答案 0 :(得分:0)

  1. 如果查看按钮出现在th标签下,则可以使用findElements()方法检查是否存在此按钮。如果存在,请单击它,否则单击报告链接。 e.g。

    如果(driver.findElements(By.name(&#34;查看&#34;))&大小大于0) { //单击“查看”按钮的逻辑 } 其他 {   //点击报告链接 }

  2. 如果报告表是页面上唯一的表,则可以使用tagName作为th来定位元素。 (注意:所有报告链接都应该在标签下,然后可以应用此方法。)

  3. 希望这有帮助!