0

我创建了一个 selenium 代码,可以在我的网站上自动化测试。

在一个屏幕中,我运行了一个查询,系统在我的 IE 屏幕中以表格的形式显示了这个查询的结果。

然后我需要选择并单击该表的一行。

我尝试使用下面的代码执行此操作,但 Eclipse 中的结果是它无法找到元素 0531025836,即使它出现在我屏幕上的表结果中。

driver.findElement(By.xpath("//td[contains(.,'0531025836')]")).click();
4

2 回答 2

1

我以前从未见过 XPath(但与这里的一些相比,我对 XPath 不是很精通)。

如果您正在寻找一个语句来选择具有该文本的元素,请尝试//td[.='0531025836'].

如果您正在寻找一个语句来选择包含该文本的元素,请尝试//td[contains(text(),'0531025836')]

于 2013-08-15T21:00:03.837 回答
0

据我了解,您正在处理 webTables。如果我是正确的,那么您可以在 google 上找到多个示例,如下所示。

WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://money.rediff.com/");

WebElement element=driver.findElement(By.id("allpage_links"));
List<WebElement> rowCollection=element.findElements(By.xpath("//*[@id='allpage_links']/tbody/tr"));


System.out.println("Number of rows in this table: "+rowCollection.size());
//Here i_RowNum and i_ColNum, i am using to indicate Row and Column numbers. It may or may not be required in real-time Test Cases.       
int i_RowNum=1;
for(WebElement rowElement:rowCollection)
{
      List<WebElement> colCollection=rowElement.findElements(By.xpath("td"));
      //now here you have list of webelements of the table, you can perform 
      //any event on that as per your reqirement
      int i_ColNum=1;
      for(WebElement colElement:colCollection)
      {
           System.out.println("Row "+i_RowNum+" Column "+i_ColNum+" Data "+colElement.getText());
           i_ColNum=i_ColNum+1;
       }
    i_RowNum=i_RowNum+1;
 }
 driver.close();
于 2013-08-15T21:07:35.020 回答