Watir的xpath 应用

上一篇 / 下一篇  2013-01-23 17:41:44 / 个人分类:测试

Watir的element定位,是可以使用xpath来进行定位的,它的实现过程如下:
通过DOM组件来获得HTML文件的源文件
清除HTML源文件的格式,然后转化为一个正确的XHTML文件
将XHTML作为一个输入传递给REXML
使用REXML来解析XPath的表达式,从而获得指定元素的绝对路径
将绝对路径通过COM方式返回给DOM,从而获得定位

我们一般使用的XPath的路径表达式有: 
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 
.  选取当前节点。 
.. 选取当前节点的父节点。 
@  选取属性。

实例:

1. 指定查找 


我们有一个a元素为:<a href="test.htm">click me</a>


browser.link(:xpath,"//a[@href='test.htm']").text

 # => "click me“


如果这个a是第一个,我们可以用


browser.link(:xpath, “//a”).html   #//a 返回第一个

browser.link(:xpath, //a[1]).html   #//a[1] 数组是以1开始,非0


2. 完全定位查找 


百度的页面上有:


<input type="submit" value="百度一下" id="su" class="s_btn" nmousedown="this.className='s_btn s_btn_h'" nmouseout="this.className='s_btn'">


browser.button(:xpath,"//input[@id=‘su’]").type

# => “submit"


3. 也可以模糊查找

browser.button(:xpath,"//input[contains(@id, ‘su’)]").type

# => “submit"


4. 相对路径 


例如有:

<div id="u">

<a href="http://www.baidu.com/gaoji/preferences.html" name="tj_setting">搜索设置</a>

</div>


我们可以对a的父节点进行搜索:


browser.element(:xpath, "//a/..").tag_name

#=> "div"


5. 完全模糊查找


当我们只知道id,不知道type信息的情况下

browser.element(:xpath, "//×[@id='u']").tag_name


TAG:

 

评分:0

我来说两句

日历

« 2024-05-17  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 152757
  • 日志数: 185
  • 文件数: 6
  • 建立时间: 2007-08-06
  • 更新时间: 2015-01-06

RSS订阅

Open Toolbar