- import org.openqa.selenium.By;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import org.testng.annotations.Test;
- public class LocateTable {
- public WebDriver driver;
- @Test
- public void LocateTableTest() {
- WebElement table = driver.findElement(By.id("table"));
- List<WebElement> rows = table.findElements(By.tagName("tr"));
- // assertEquals(5,rows.size());
- for(WebElement row:rows){
- List<WebElement> cols= row.findElements(By.tagName("td"));
- for(WebElement col:cols){
- System.out.println(col.getText()+"\t");
- }
- System.out.println("");
- }
- }
- }
代码逻辑:
(1)先定位表格的页面元素对象;
- WebElement table = driver.findElement(By.id("table"));
- List<WebElement> rows = table.findElements(By.tagName("tr"));
(3)使用for循环方式,先将表格行对象从rows对象中取出,使用findElements函数将表格行对象中的所有单元格对象存储到名为cols的List对象中,然后再次使用for循环把每行的单元格文本遍历输出。
- List<WebElement> rows = table.findElements(By.tagName("tr"));
- for(WebElement row:rows){
- List<WebElement> cols= row.findElements(By.tagName("td"));
- for(WebElement col:cols){
- System.out.println(col.getText()+"\t");
- }
- System.out.println("");
- }
col.getText()表示获取单元格的文本内容
- <pre name="code" class="java"># 定位显示表格的第二行第二列单元格
- XPath表达式实例:
- //*[@id='table']/tbody/tr[2]/td[2]
- Java实例代码:
- WebElement cell = driver.findElement(By.xpath("//*[@id='table']/tbody/tr[2]/td[2]"));
- 表达式中的tr[2]表示第二行,td[2]表示第二列,组合起来就是第二行第二列单元格