如何使用selenium web驱动程序搜索后从网格中计算文本重新执行次数

时间:2014-05-05 06:35:26

标签: java selenium selenium-webdriver

从我的应用程序中,我搜索一个名称,结果在新窗口中打开,相关员工在网格中,我需要知道该名称的网格中出现的次数。 就像搜索约翰的结果一样 - 约翰费尔南德斯,约翰马克斯韦尔和约翰杜索萨。结果应该是3 John的发现。

这不起作用:

    WebElement text = driver.findElement(By.tagName("text"));
        String bodytext=text.getText();
        System.out.println(bodytext);

  //Verify the Name searched        
  int count=0;

  while (bodytext.contains(name)){
        count++;

        bodytext=bodytext.substring(bodytext.indexOf(name))+name.length();
  }

4 个答案:

答案 0 :(得分:0)

获取网格ex的路径。

WebElements gridElements = driver.findElements(By.xpath("//table[@id='grid1']/tr/td"));
system.out.println("No. of occ. is->"+gridElements.size());

答案 1 :(得分:0)

By.tagName("text")不能用作" text"不是HTML标记名称。

使用XPATH或更好的是CSS Selector。 您还可以使用javascript来计算它返回的名称数量。

如果您可以给结果页面HTML,我可以帮助您找到可以返回结果的CSS Selectore或Javascript。

答案 2 :(得分:0)

它运转良好,唯一的问题是

bodyText的= bodytext.substring(bodytext.indexOf(名称)+ name.length());

答案 3 :(得分:-1)

我们以第http://www.w3schools.com/html/html_tables.asp

为例

这是用于获取表格中的行的javascript代码(它还包括标题行)

document.getElementsByClassName('reference')[0].getElementsByTagName('tr').length

要从网络驱动程序运行javascript,请使用

(String) ((JavascriptExecutor) driver).executeScript("document.getElementsByClassName('reference')[0].getElementsByTagName('tr').length");

希望这有帮助。