`
aerchi
  • 浏览: 428083 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
文章分类
社区版块
存档分类
最新评论

WebDriver拾级而上·之十六 Table控件的处理

 
阅读更多
对于Table控件selenium webdriver里没有方法能处理,所以要自己封装一个方法

HTML代码(table.html放在桌面)
<html>
<wbr><wbr>&lt;head&gt;</wbr></wbr>
<wbr><wbr><wbr><wbr>&lt;title&gt;Table&lt;/title&gt;</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr>&lt;/head&gt;</wbr></wbr>
<wbr><wbr>&lt;body&gt;</wbr></wbr>
<wbr><wbr><wbr><wbr>&lt;table border="1" id="myTable"&gt;</wbr></wbr></wbr></wbr>
<tr>
<th>HeadingA(1 ,1)</th>
<th>HeadingB(1 ,2)</th>
<th>HeadingC(1 ,3)</th>
</tr>
<tr>
<td>2, 1</td>
<td>2, 2</td>
<td>2, 3</td>
</tr>
<tr>
<td>3, 1</td>
<td>3, 2</td>
<td>3, 3</td>
</tr>
</table>
<wbr><wbr>&lt;/body&gt;</wbr></wbr>
</html>


JAVA代码
package com.test;

import java.util.List; <wbr></wbr>
import org.openqa.selenium.By; <wbr><wbr></wbr></wbr>
import org.openqa.selenium.WebDriver; <wbr></wbr>
import org.openqa.selenium.WebElement; <wbr></wbr>
import org.openqa.selenium.chrome.ChromeDriver;

public class Test_table {
private WebDriver driver; <wbr></wbr>
Test_table(WebDriver driver){ <wbr></wbr>
<wbr><wbr><wbr><wbr>this.driver = driver; <wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr>} <wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr></wbr></wbr></wbr>
<wbr><wbr>public String getCellText(By by,String tableCellAddress) { <wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>//得到table元素对象 <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>WebElement table = driver.findElement(by); <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>//对所要查找的单元格位置字符串进行分解,得到其对应行、列。 <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>int index = tableCellAddress.trim().indexOf('.'); <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>int row = <wbr>Integer.parseInt(tableCellAddress.substring(0, index)); <wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>int cell = Integer.parseInt(tableCellAddress.substring(index+1)); <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>//得到table表中所有行对象,并得到所要查询的行对象。 <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>List&lt;WebElement&gt; rows = table.findElements(By.tagName("tr")); <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>WebElement theRow = rows.get(row); <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>//调用getCell方法得到对应的列对象,然后得到要查询的文本。 <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>String text = getCell(theRow, cell).getText(); <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>return text; <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr>} <wbr></wbr></wbr></wbr>
<wbr><wbr><wbr></wbr></wbr></wbr>
<wbr><wbr>private WebElement getCell(WebElement Row,int cell){ <wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>List&lt;WebElement&gt; cells; <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>WebElement target = null; <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>//列里面有"&lt;th&gt;"、"&lt;td&gt;"两种标签,所以分开处理。 <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>if(Row.findElements(By.tagName("th")).size()&gt;0){ <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>cells = Row.findElements(By.tagName("th")); <wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>target = cells.get(cell); <wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>} <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>if(Row.findElements(By.tagName("td")).size()&gt;0){ <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>cells = Row.findElements(By.tagName("td")); <wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>target = cells.get(cell); <wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>} <wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>return target; <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr>} <wbr></wbr></wbr></wbr>
public static void main(String[] args) {

String url = "file:///C:/Documents and Settings/fy/桌面/table.html";
<wbr><wbr>//打开chrome</wbr></wbr>
<wbr><wbr>WebDriver dr = new ChromeDriver();</wbr></wbr>
<wbr><wbr><wbr><wbr>dr.get(url);</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>Test_table table = new Test_table(dr); <wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>System.out.println(table.getCellText(By.id("myTable"), "0.2"));<wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>System.out.println(table.getCellText(By.id("myTable"), "2.1"));<wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>dr.quit();</wbr></wbr></wbr></wbr>
}
}


页面输出:
HeadingC(1 ,3)
3, 2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics