我写了一个代码来验证给定的文本是否存在于该行中,但我如何在特定的单元格中单击?请帮助我。
下面是我为验证文本而写的代码。
package com.Tables;
import java.util.List;
public class HandlingTables {
public static void main(String[] args) throws InterruptedException {
String s="";
System.setProperty("webdriver.chrome.driver", "D:/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.w3schools.com/html/html_tables.asp");
WebElement table = driver.findElement(By.className("w3-table-all"));
List<WebElement> allrows = table.findElements(By.tagName("tr"));
List<WebElement> allcols = table.findElements(By.tagName("td"));
System.out.println("Number of rows in the table "+allrows.size());
System.out.println("Number of columns in the table "+allcols.size());
for(WebElement row: allrows){
List<WebElement> Cells = row.findElements(By.tagName("td"));
for(WebElement Cell:Cells){
s = s.concat(Cell.getText());
}
}
System.out.println(s);
if(s.contains("Jackson")){
System.out.println("Jackson is present in the table");
}else{
System.out.println("Jackson is not available in the table");
}
Thread.sleep(10000);
driver.quit();
}
}
2条答案
按热度按时间bxfogqkk1#
你可以修改你的循环来点击,而不是包含一个巨大的字符串
但是请记住,单击
<td>
可能不会触发,因为<td>
可能不会监听click事件。如果TD中有链接,则可以执行以下操作:rekjcdws2#
您必须构建一个动态选择器来实现这一点。
例如:
在以Row和Column作为输入参数的方法中,必须构建选择器。
现在,您可以单击该web元素或对该web元素执行任何其他操作。