博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium Webdriver——处理Table
阅读量:4958 次
发布时间:2019-06-12

本文共 4210 字,大约阅读时间需要 14 分钟。

 html table是由 table 元素以及一个或多个 tr、th 或 td 元素组成。如下:

HTML源码如下:

for selenium test

table head:

Test Case ID Steps Expect Actual PASS/FAIL
ENT#-12345 1.open baidu.com ,wait for the page load
2.enter "selenium" in the input box"
3.click search button
"Selenium - Web Browser Automation" link be the first of the search result Selenium - Web Browser Automation is appear the page,but is not the first link FAIL
ENT#-12346 1.click the "Selenium - Web Browser Automation" link
2.wait for page load
open the official home page of selenium selenium home page is load FAIl
ENT#-12347 1.click baidu snapshot of selenium web page
2. wait for the page load
the snapshot web page can be show up the snapshot web page is show up PASS

获取table的base xpath,base xpath是指这个table的第n行第m列相同的部分,然后通过传入n,m获取返回值

Java代码:

public static String tableCell(WebDriver driver,int row, int column) {        String text = null;        //avoid get the head line of the table      //  row=row+1;            String xpath="//*[@id='table138']/tbody/tr["+row+"]/td["+column+"]";        try{            WebElement table=driver.findElement(By.xpath(xpath)); //*[@id="table138"]/tbody/tr[1]/td[1]/strong             text=table.getText();               }catch(NoSuchElementException e){            System.out.println("超出table边界值");        }        return text;     }

 

也可以通过 tr,td来写

public static String tableCell2(WebDriver driver,int row, int column) {        String text = null;        //avoid get the head line of the table        //row=row+1;        try{            List
rowCounts = driver.findElements(By.tagName("tr")); WebElement currentRow = rowCounts.get(row-1); List
td = currentRow.findElements(By.tagName("td")); WebElement cell = td.get(column-1); text=cell.getText(); }catch(IndexOutOfBoundsException e){ System.out.println("超出table边界值"); } return text; }

 

 

 

 

Python代码,这里要将row/column转为str

def tablecell(driver,row ,column):    row = row + 1    xpath = "//*[@id='table138']/tbody/tr["+str(row)+"]/td["+str(column)+"]";    table = driver.find_element_by_xpath(xpath)    return table.text

 

示例:

JAVA代码:

import org.openqa.selenium.By;import org.openqa.selenium.NoSuchElementException;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;public class getTableValue {    public static void main(String[] args) {        // TODO Auto-generated method stub        WebDriver driver = new FirefoxDriver();        driver.manage().window().maximize();        driver.get("F:\\table.html");        System.out.println(tableCell(driver, 1, 2));        driver.quit();    }    public static String tableCell(WebDriver driver,int row, int column) {        String text = null;        //avoid get the head line of the table        row=row+1;            String xpath="//*[@id='table138']/tbody/tr["+row+"]/td["+column+"]";        try{            WebElement table=driver.findElement(By.xpath(xpath)); //*[@id="table138"]/tbody/tr[1]/td[1]/strong             text=table.getText();               }catch(NoSuchElementException e){            System.out.println("超出table边界值");        }        return text;     }}

 

输出为:

 

Python代码

def tablecell(driver,row ,column):    row = row + 1    xpath = "//*[@id='table138']/tbody/tr["+str(row)+"]/td["+str(column)+"]";    table = driver.find_element_by_xpath(xpath)    return table.textfrom selenium import  webdriverdriver = webdriver.Firefox()driver.maximize_window()driver.get("F:\\table.html")print(tablecell(driver, 1, 2))driver.quit()

输出为:

 

转载于:https://www.cnblogs.com/hjhsysu/p/5743011.html

你可能感兴趣的文章
随笔 javascript-抽象工厂模式
查看>>
机器学习----人脸对齐的算法-ASM.AAM..CLM.SDM
查看>>
Android项目的目录结构
查看>>
spring-cloud服务器雪崩效应
查看>>
C++中“引用”的底层实现
查看>>
ZOJ 1602. Multiplication Puzzle (DP)
查看>>
Spring Cloud分布式微服务云架构集成项目
查看>>
【Android学习专题】控件组件篇:Dialog汇总
查看>>
Dynamic Signals and Slots
查看>>
jquery datatable 参数
查看>>
preprocessing MinMaxScaler
查看>>
转帖 eclipse Web项目WebContent目录修改
查看>>
设计模式--4、单例模式
查看>>
博客作业06--图
查看>>
1629 B君的圆锥
查看>>
[转]我国古代求解最大公约数的方法-更相减损术
查看>>
使用Keras编写GAN的入门
查看>>
数组排序 (选择排序、冒泡排序、插入排序、希尔排序)
查看>>
musql 单表查询
查看>>
【Git】标签管理
查看>>