`

定位页面表格和单元格

 
阅读更多
在处理表格时,我们可以通过By类中的一些方法快速有效的来定位表格的行和单元格。
笔者曾经得到一个需求,说是要来获取如下图所示的内容(注:百度只是我做的一个例子):

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<address.length;i++){
			System.out.println(table.getCellText(by, address[i]));
		}
		driver.quit();
	}
 
	/** 从一个table的单元格中得到文本值. 参数tableCellAddress的格式为row.column, 行列从0开始. 
    @param by  用于得到table对象 
    @param tableCellAddress 一个单元格地址, 如. "1.4"  行 列
    @return 从一个table的单元格中得到文本值
    */
    public String getCellText(By by,String tableCellAddress){
        //得到table元素对象
        WebElement table = driver.findElement(by);
 
        //对所要查找的单元格位置字符串进行分解,得到其对应行、列。
        int index = tableCellAddress.trim().indexOf('.');
        int row =  Integer.parseInt(tableCellAddress.substring(0, index));
        int cell = Integer.parseInt(tableCellAddress.substring(index+1));
 
        //得到table表中所有行对象,并得到所要查询的行对象
        List<WebElement> 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<WebElement> cells;
        WebElement target = null;
        //列里面可能有"<th>"、"<td>"两种标签,所以分开处理。
        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;
    }
}
分享到:
评论

相关推荐

    e语言-易语言操作网页框架中表格的单元格

    在这个主题中,我们将关注如何使用易语言来操作网页框架中的表格单元格,这通常涉及到网络数据的交互和页面元素的控制。 首先,我们需要了解易语言中的“超文本浏览框”组件。这是一个内置控件,用于显示和交互HTML...

    html表格头部固定 相应单元格宽度自适应内容区域单元格

    我们可以创建一个包含表头的独立表格,并将其定位在页面的顶部,即使内容区域滚动,表头也会保持在屏幕的固定位置。以下是一个基本的CSS实现步骤: 1. 将表格分为两部分:thead(表头)和tbody(表体)。 2. 使用...

    jQuery仿Excel表格选中单元格变色特效

    在本文中,我们将深入探讨如何使用jQuery实现一个仿Excel表格的选中单元格变色特效。这个功能允许用户在网页上的...在实际应用中,还可以根据需要添加更多的功能,如排序、过滤和公式计算,以增强网页表格的实用性。

    jQuery表格搜索过滤和单元格高亮插件

    综上所述,jQuery.FilterTable是一个强大且易于使用的表格过滤插件,它为网页表格带来了便捷的搜索功能和视觉焦点,提升了用户体验。结合其丰富的配置选项和事件,开发者可以轻松地定制出满足需求的表格搜索功能。

    DW网页布局表格、布局表格.ppt

    在 Dreamweaver 中,还可以使用布局表格来布局网页,布局表格可以在页面进行布局的模式,可以在添加内容前使用布局单元格和表格来对页面进行布局;也可以在布局模式中将文本、图像和其他内容添加到布局单元格中,这...

    网页表格经典css样式

    `border-collapse`属性用于决定是否合并表格单元格的边框,`cellspacing`和`cellpadding`属性则用来设置单元格之间的空隙和内部内容与边框的距离。 2. **背景色与文本样式**:`background-color`属性可以改变表格或...

    易语言操作网页框架中表格的单元格源码-易语言

    本知识点主要聚焦于如何使用易语言操作网页框架中的表格单元格,这对于构建网页应用或者进行自动化测试等场景具有重要意义。 在易语言中,操作网页框架通常涉及WebBrowser控件,这是易语言提供的一种可以嵌入网页的...

    jQuery表格预览设置单元格选中取值代码.zip

    本主题聚焦于"jQuery表格预览设置单元格选中取值代码",这涉及到如何利用jQuery来实现对表格(Table)中的单元格(Cell)进行操作,包括选中和获取其值,以及可能的预览功能。这里我们将深入探讨相关的jQuery技术和...

    jQuery表格预览设置单元格选中取值代码

    总结,本篇文章详细介绍了如何使用jQuery实现表格预览、单元格选中以及取值的功能,包括基本的DOM操作、事件监听、CSS样式控制和函数封装。希望这些内容能帮助你更好地理解和应用jQuery在实际项目中的功能。

    使用表格布局网页PPT学习教案.pptx

    网页设计中的表格布局是构建网页结构的重要手段,尤其在Dreamweaver中,表格不仅用于数据展示,更是网页定位和排版的关键。本教程主要讲解如何使用表格进行网页设计。 首先,我们了解表格的创建。在网页设计中,...

    JSP页面实现合并单元格

    在本例中,我们主要关注于如何通过JavaScript来动态地合并JSP页面中的表格单元格。具体的实现步骤如下: 1. **获取表格元素**:通过jQuery选择器获取到整个表格元素。 2. **提取行数据**:遍历表格中的每一行,提取...

    网页设计时怎么合理利用表格

    在网页设计中,表格(Table)是一个不可或缺的元素,它能有效地组织和展示数据,提供清晰的结构。然而,不合理的表格使用往往会导致页面布局混乱,加载速度变慢,用户体验下降。因此,合理利用表格是网页设计师必须...

    合并html单元格的插件

    这会在页面加载完成后自动运行插件,合并表格中所有相同内容的单元格。 总的来说,"合并html单元格的插件"提供了一种方便的方式来优化HTML表格布局,减少冗余信息,提高数据的可读性和整体视觉效果。通过理解插件的...

    JS获取表格内指定单元格html内容的方法

    下面的代码先通过表格对象的rows获得指定的行的所有单元格数组,然后定位指定的单元格,通过单元格的innerHTML属性获得单元格的html内容 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; [removed] function cell() ...

    用Dreamweaver8表格进行页面布局.doc

    【Dreamweaver8表格进行页面布局】是网页设计中一种常用的方法,特别是在早期网页开发中,表格被广泛用于布局管理。以下是对这个主题的详细解释: 表格是HTML中的一种元素,用于展示结构化的数据,同时也是对网页...

    在网页中应用表格PPT学习教案.pptx

    选择单元格则包括选择单个单元格和多个单元格区域。 设置表格属性是在“表格”属性面板中完成的,这里可以调整表格的外观,如边框宽度、颜色、对齐方式等。而设置单元格属性则可以单独调整特定行、列或单元格的样式...

    网页设计教程教你做简单网页表格

    网页设计是创建交互式网页的重要技能,而网页表格则是网页设计中的基础元素,常用于数据展示和页面布局。本教程将向初学者介绍如何使用Dreamweaver MX 2004来创建和编辑简单的网页表格。 首先,创建表格是网页制作...

    网页设计制作 网页表格标题

    总结,网页表格标题是网页设计的关键元素,合理的标题设计能够提升用户体验,方便数据的阅读和理解。通过掌握HTML表格标题的语法和优化技巧,我们可以创建出更符合用户需求的网页。在实际操作中,结合示例和使用指南...

    网页设计Dreamweaver的表格和网页版面设计.pptx

    * 表格可以用来实现网页的精确排版和定位。 * 表格可以用来在网页上创建表单、数据表和其他类型的表格。 表格的创建与编辑: * 在Dreamweaver中,用户可以使用“插入”工具栏中的“表格”按钮或选择“插入”菜单下...

    应用表格布局网页设计制作PPT学习教案.pptx

    选中单元格则分为单个单元格和多个单元格的选中,每个操作都有其特定的步骤。 通过这个PPT学习教案,学生可以系统地学习和掌握表格布局网页设计的核心技能,包括创建表格、操作表格以及如何利用表格来优化页面布局...

Global site tag (gtag.js) - Google Analytics