Selenium Webdriver——Table类封装

WebTable.java

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

public class WebTable {

    private WebElement webTable;
    public WebTable(WebElement webElement){
        this.webTable = webElement;
    }

    //等到表格的行数
    public int getRowCount(){
        List<WebElement>rowCounts = webTable.findElements(By.tagName("tr"));
        return rowCounts.size();
    }

    //得到指定行的列数
    public int getColCount(int rowId){
        List<WebElement>rowCounts = webTable.findElements(By.tagName("tr"));
        //取得当前的tr
        WebElement rowNum = rowCounts.get(rowId);
        //计算当前的td数
        List<WebElement>colCounts =rowNum.findElements(By.tagName("td"));
        return colCounts.size();
    }

    // 得到指定单元格的内容
    public  String getCellText(int rowIdx, int colIdx) {

        String text = "";

        try{
            List<WebElement> rowCounts = webTable.findElements(By.tagName("tr"));
            WebElement currentRow = rowCounts.get(rowIdx);
            List<WebElement> td = currentRow.findElements(By.tagName("td"));
            WebElement cell = td.get(colIdx);
             text = cell.getText();
        }catch(IndexOutOfBoundsException e){
            System.out.println("超出table边界值");
        }

        return text;
    }
}

对webTable类进行测试

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;

public class testTable {

  @Test
  public void testTableWebElement() {

      WebDriver driver = new FirefoxDriver();
      driver.manage().window().maximize();
      driver.get("F:\\table.html");
      WebTable webtable = new WebTable(driver.findElement(By.tagName("table")));
      Assert.assertEquals(4, webtable.getRowCount());
      Assert.assertEquals(5, webtable.getColCount(1));
      System.out.println( webtable.getCellText(1, 1));
      driver.quit();
  }
}
时间: 2024-12-14 00:09:47

Selenium Webdriver——Table类封装的相关文章

selenium - webdriver - Keys类(键盘操作)

Keys()类提供了键盘上几乎所有按键的方法,这个类可用来模拟键盘上的按键,包括各种组合键,如 Ctrl+A, Ctrl+X,Ctrl+C, Ctrl+V 等等 from selenium import webdriver from selenium.webdriver.common.keys import Keys from time import sleep driver = webdriver.Chrome() driver.get("http://www.baidu.com")

python+selenium webdriver 如何处理table

Table对象是自动化测试中经常需要处理的对象.由于webdriver中没有专门的table类,所以我们需要简单的封装出一个易用易扩展的Table类来帮助简化代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

史上最强大的selenium webdriver的封装

放出这个类,用法见测试用例. 1.基于selenium的二次封装,整体代码非常短易于理解,带有两个自定义方法示例供参考,易于扩展. 2.支持无限实例化此类,仍然保持使用同一个浏览器窗口. 3.支持使用自定义的方法名字,同时全所未有的支持了直接性的使用所有此类中没有定义的方法,但在官方类中有的api方法,比如直接支持DriverWrapper().execute_script(script, *args)这种写法. 4.其余想自定义名称的方法可以在这个类下面接着写或者继承这个类再添加其他更多方法

selenium 如何处理table

qi_ling2005  http://jarvi.iteye.com/blog/1477837 andyguo  http://blog.csdn.net/gzh0222/article/details/7568490 以前在selenium RC 里面有一个getTable方法,是得到一个单元格中的文本.其详细描述如下: Java代码   /** Gets the text from a cell of a table. The cellAddress syntax <span style=

Selenium WebDriver 处理cookie

在使用webdriver测试中,很多地方都使用登陆,cookie能够实现不必再次输入用户名密码进行登陆. 首先了解一下Java Cookie类的一些方法. 在jsp中处理cookie数据的常用方法: getDomain():返回cookie的域名. getMaxAge():返回cookie的存活时间 getName():返回cookie的名字 getPath():返回cookie适用的路径 getSecure():如果浏览器通过安全协议发送Cookie将返回true值,如果浏览器使用标准协议刚返

selenium webdriver 右键另存为下载文件(结合robot and autoIt)

首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为,根本操作不了. 也有在网上看到webdriver right click option的一些代码,拿来用发现不能用的. Actions act = new Actions(driver); WebElement link = driver.findElement(By.id("xpath"

开源应用架构之?Selenium WebDriver(上)

前不久,InfoQ向大家推荐了几本有关 软件架构的新书,引起了国内读者的广泛兴趣.其中一本是< 开源应用架构(The Architecture of Open  Source  Applications)>, 来自知名开源项目的各位作者对软件的设计进行了说明.通过对这些成功的系统架构进行概览,让软件工程师可以彻底了解最佳实践和陷阱.InfoQ中文站响应 读者的需求,整理了该书有关知名开源软件架构的精彩内容,供国内开发社区借鉴.本期介绍的是著名浏览器自动化工具Selenium   WebDriv

Page Object Model | POM (Selenium Webdriver For Python)

研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数调用,到重定义函数.从变量驱动,到数据驱动,再到关键字驱动,一步一步的默默走向自动化框架的构建.虽然还有没有投入使用,只是写几个demo,就慢慢的发现了 selenium自动用例脚本,相似功能地方,代码基本都是一样的,界面元素换个查找方式,把原来的使用 xpath方式,改为使用 id 查找,需要对每个用例脚本都要改

Selenium WebDriver 之 PageObjects 模式 by Example

目录 1. 项目配置 2. 一个WebDriver简单例子 3. 使用Page Objects模式 4. 总结 5. Troubleshooting 6. 参考文档 本篇文章通过例子来阐述一下Selenium2.0 WebDriver 之 Page Objects模式. 项目配置 maven 3, pom.xml配置如下 <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>s