我创建了一个 selenium 代码,可以在我的网站上自动化测试。
在一个屏幕中,我运行了一个查询,系统在我的 IE 屏幕中以表格的形式显示了这个查询的结果。
然后我需要选择并单击该表的一行。
我尝试使用下面的代码执行此操作,但 Eclipse 中的结果是它无法找到元素 0531025836,即使它出现在我屏幕上的表结果中。
driver.findElement(By.xpath("//td[contains(.,'0531025836')]")).click();
我创建了一个 selenium 代码,可以在我的网站上自动化测试。
在一个屏幕中,我运行了一个查询,系统在我的 IE 屏幕中以表格的形式显示了这个查询的结果。
然后我需要选择并单击该表的一行。
我尝试使用下面的代码执行此操作,但 Eclipse 中的结果是它无法找到元素 0531025836,即使它出现在我屏幕上的表结果中。
driver.findElement(By.xpath("//td[contains(.,'0531025836')]")).click();
我以前从未见过 XPath(但与这里的一些相比,我对 XPath 不是很精通)。
如果您正在寻找一个语句来选择具有该文本的元素,请尝试//td[.='0531025836']
.
如果您正在寻找一个语句来选择包含该文本的元素,请尝试//td[contains(text(),'0531025836')]
据我了解,您正在处理 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();