我有一个表,其中有一列称为“状态”。我必须找到并点击与该列中的“已关闭成功”文本匹配的链接。该列中每个单元格的xpath为
"//*[@id='TicketID_xxxxxx']/td[7]/div
其中xxxxxx是门票数量。那么如何找到具有不同xpath值的匹配文本并使用selenium webdriver单击它。请帮忙。
(可选 - 我必须单击该元素,单击后面并查找具有相同匹配文本的下一个元素)
答案 0 :(得分:3)
嗨Sanket Patel请按照下面的说法进行操作
driver.get(yourWebPageLInk); // link to your web-table web page
// take all of the element under Column "State" inside list
List<WebElement> columVal = driver.findElements(By.xpath("//*[starts-with(@id,'TicketID_')]/td[7]/div"));
// count the size of the list to match with the size of the column state
System.out.println("Size of the contents in the column state is : " +columVal.size());
// now for matching one of the content and then performing some action please
// start a for loop
String oneVal = "closed successful";
for(int i=0;i<columVal.size();i++){
System.out.println("Content text is : " + columVal.get(i).getText());
// match the content here in the if loop
if(columVal.get(i).getText().equals(oneVal)){
// perform action
columVal.get(i).click();
}
}
答案 1 :(得分:0)
您可以使用text()
方法
String text = "someText";
driver.findElement(By.xpath("//div[contains(text(), '" + text + "')]")).click();
或cssSelector
String text = "someText";
driver.findElement(By.cssSelector("div:contains('" + text + "')")).click();
答案 2 :(得分:0)
对于这种情况,您可以使用 Selenium WebDriver 的 TableDriver 扩展。 (https://github.com/jkindwall/TableDriver.Java)。如果有关于相关表格的更多详细信息,这将很有帮助,但是,如果我们假设该表格有一列“链接”包含您需要单击的链接,并且我们假设主表格元素的 id 是“tabelId "你可以这样做:
dask.config.config