+ 首页>>技能>>内容

技能Selenium专题—定位页面表格和单元格158次围观

在处理表格时,我们可以通过By类中的一些方法快速有效的来定位表格的行和单元格。

笔者曾经得到一个需求,说是要来获取如下图所示的内容(注:百度只是我做的一个例子):

Selenium专题—定位页面表格和单元格

看看怎么用webdriver解决这个问题

package com.mytest;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

/*
 * 
 * 测试百度搜索框输入某个数据之后自动弹出的下拉列表
 * author:Kiven
 * 部分信息参考于网络
 */
public class BaiduTable {
	private WebDriver driver; 
	
	BaiduTable(WebDriver driver){
		this.driver = driver;
	}
	
	public static void main(String args[]) throws InterruptedException{
		WebDriver driver;
		String DriverPath = "F:\\AutoTest\\selenium\\chromedriver.exe";
		System.setProperty("webdriver.chrome.driver",DriverPath);
		driver = new ChromeDriver();
		
		driver.get("http://www.baidu.com");
		
		//搜索框
		driver.findElement(By.id("kw")).sendKeys("test");
		//等待元素出现
		driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
		
		BaiduTable table = new BaiduTable(driver);
		//table的ID
		By by = By.id("st");
		//String address = "2.0";	//取第三行第一列的值(该table只有一列)
		
		//取出全部10行的数据
		String address[] = {"0.0","1.0","2.0","3.0","4.0","5.0","6.0","7.0","8.0","9.0"};
		for(int i=0;i rows = table.findElements(By.tagName("tr"));
        WebElement theRow = rows.get(row);
        
        //调用getCell方法得到对应的列对象,然后得到要查询的文本。
        String text = getCell(theRow, cell).getText(); 
        return text;
    }
    
    private WebElement getCell(WebElement Row,int cell){
        List cells;
        WebElement target = null;
        //列里面可能有""、""两种标签,所以分开处理。
        if(Row.findElements(By.tagName("th")).size()>0){
           cells = Row.findElements(By.tagName("th"));
           target = cells.get(cell);
        }
        if(Row.findElements(By.tagName("td")).size()>0){
           cells = Row.findElements(By.tagName("td"));
           target = cells.get(cell);
        }
        return target;
    }
}

结果如下:
Selenium专题—定位页面表格和单元格

赶紧试试看吧

+ 猜你喜欢...

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。

===== DiggerPlus 官方读者群 =====
DiggerPlus官方读者群(一)

+ 关于本文作者

我也很想让世界变得更美好,可是上帝却不开放源代码。

的专栏 | 专栏作者 | 访问Kiven的主页

+ 已有6个评论

开源中国精彩推送

基于开源中国OpenAPI开发
  • Copyright © 2014 DiggerPlus. 98 queries in 1.254 seconds.
    使用合作网站账号快速登录,更多精彩等着您: 开源中国