码迷,mamicode.com
首页 > Web开发 > 详细

WebDriver中对表格的处理

时间:2015-04-02 16:48:33      阅读:504      评论:0      收藏:0      [点我收藏+]

标签:webdriver

在web的自动化测试过程中,经常需要对表格进行处理,比如下图的网页:

技术分享

现在我们想选择第二个单选按钮,那么如果处理?

方法1:数数

如果我们可以确定操作的单选按钮所处的位置,比如第二个,那么我们可以用如下方式:

webDriver.findElements(By.cssSelector("input[type=‘radio‘]")).get(1);

但是在实际项目中,我们是不能或者不容易确定这个顺序的,所以有如下方式:

方法2:相对定位

因为第二行中的JNDI name是唯一的,所以我们可以使用该属性来定位tr,然后在tr中查找单选框进行操作,此处可以:

(1)使用xpth:

WebElement tr = webDriver.findElement(By.xpath("//tr[td[2]=‘jdbc/ProxyDS‘]"));
WebElement webElement = tr.findElement(By.cssSelector("input[type=‘radio‘]"));

扩展一下此处的xpath常用函数:

1)normalize-space:该函数可以把字符串两端的空格去掉

2)upper-case,lower-case等XPATH2.0函数,可以把字符串转成大写或者小写字母,但是现阶段主流浏览器只支持XPATH1.0,所以此时需要使用hack,比如如下的XPATH表达式:

//tr[translate(td[3], "abcdefghijkl", "ABCDEFGHIJKL")=‘*LOCAL‘]

该表达式将选择这样的额tr:第三列的文本经过大写转换后的结果为*LOCAL

如果还有其他较为复杂的文本处理,可以考虑下文方法(2)进行定位。

(2)在table中,遍历tr和td:

for(WebElement tr : webDriver.findElements(By.tagName("tr"))){
	List<WebElement> tdList = tr.findElements(By.tagName("td"));
	if(tdList.get(1).getText().equals("jdbc/ProxyDS")){
		return tr;
	}
}


WebDriver中对表格的处理

标签:webdriver

原文地址:http://coderlouis.blog.51cto.com/10063254/1627607

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!