接着基于Ruby的watir-webdriver自动化测试方案与实施(四)
继续 ... ...
关于特殊控件捕获,异常控件分析,到页面各种属性的捕获方式。
 
这节讲怎么在浏览器页面提取我们想要的数据作为参数,传递到Tools进行与数据库/linux的数据做比对。
 
之前有很多朋友会问一些这样的问题:
 <div class="button-div">
<input type="hidden" name="act" value="insert">
<input type="hidden" name="old_title" value="">
<input type="hidden" name="id" value="">
<input type="submit" value=" 确定 " class="button">
<input type="reset" value=" 重置 " class="button">
</div>

@@b.button(:name=>"button").click  怎么不行?

或者是封装了好多层的控件怎么捕获:

其实在基于Ruby的watir-webdriver自动化测试方案与实施(三)中有所介绍,这里再详细说说。

http://www.cnblogs.com/Javame/p/4164471.html

对于这样的控件怎么捕获,watir-webdriver提供了两种捕获方式:

1.递归式

我们可以从父级逐步定位,例如图片多层封装,我们就可以从第一个div开始,

@@b.div(:class=>"").divs[3].spans[0]....

@@b.dv是父级,divs[3]是父级以下第四个div,记住watir-webdriver区别与watir,数组下标从0开始,watir是从1开始。

spans[0]是父级以下第四个div下面的第一span,就这样一级一级往下定位。

2.xpath

xpath很简单,chrome自身提供了xpath捕获工具

我们只需要在代码里使用即可,例如:

@@b.a(:xpath=>"//*[@id='blackListTable']/tbody/tr/td[4]/a").click

@@b.div(:class=>"detail").inputs[].click

原始的xpath里面是双引号:

//*[@id="blackListTable"]/tbody/tr/td[4]/a 

注意一点,双引号里面包着单引号,单引号里面包着双引号,这个是定律!

特殊控件与异常行为讲完了,再来谈谈页面元素捕获的问题。

比如说我们博客园首页

我想提取出“找找看”这三个字,怎么解决?

其实watir-webdriver提供了“.text”执行事件,看代码:

案例一:

d = b.div :class => 'ss-form-desc ss-no-ignore-whitespace'
puts d.text

案例二:

a = b.a(:xpath=>"//*[@id='blackListTable']/tbody/tr/td[4]/a").text
puts a

案例三:

Value = ie.link(:id=>’xxx’).attribute_value(“href”)

PS一个小心得:

在很多情况下,一些控件是隐藏的,需要促发某些事件才会显示,例如:

该删除按钮就是需要触发鼠标点击或移动事件才会显示,如果没有触发ruby将会提示异常错误。

根据以上信息,我们可以这么设计实现:

#模拟鼠标在改div上点击一下,不就可以触发删除控件了吗...
b.div(:class=>"detail").inputs[].click
#点击删除
b.button(:class=>"deleteBtn").click

o(∩_∩)o 哈哈,是不是开始觉得自动化写起来也开始有些简单了呢...


基于Ruby的watir-webdriver自动化测试方案与实施(五)的更多相关文章

  1. 基于Ruby的watir-webdriver自动化测试方案与实施(三)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   编写脚本 ...

  2. 基于Ruby的watir-webdriver自动化测试方案与实施(二)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(一) http://www.cnblogs.com/Javame/p/4159360.html 继续 ... ...   回顾 软 ...

  3. 基于ruby的watir自动化测试 笔记一

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

  4. 基于Ruby的watir-webdriver自动化测试方案与实施(四)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(三) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   首先回忆 ...

  5. 基于Ruby的watir-webdriver自动化测试方案与实施(一)

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

  6. 基于ruby的watir自动化测试 笔记二

    基于ruby的watir自动化测试 笔记一的补充版,新增加了些特殊的控件捕获方法.还在更新中.... attribute_value 获取当前控件的属性 Value = ie.link(:id=> ...

  7. <自动化测试方案_5>第五章、代码单元自动化测试

    第五章.代码单元自动化测试 代码单元测试需要根据编程语言,选择单元测试框架,然后访问类方法,函数.代码单元测试做自动化,相比API.UI自动化做起来更加麻烦,建议放到待API自动化测试.UI自动化测试 ...

  8. 基于Ruby的Watir-WebDriver自动化测试框架

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

  9. 从0到1,教你实现基于Ruby的watir-webdriver自动化测试

    一.为什么选择Ruby []完全开源. []多平台:Ruby可以运行在Linux, UNIX, Windows, MS-DOS, BeOS, OS/.. []多线程:线程就是指在一个程序中处理若干控制 ...

随机推荐

  1. 记录一则ORACLE MOVE操作后重建索引过程被强制中断导致的ORA-8104案例

    环境:SunOS + Oracle 11.2.0.3   对部分表进行Move操作之后,未重建对应的索引,会导致ORA-1502 索引不可用. 此时需要用下面的查询拼接出重建不可用索引的sql语句: ...

  2. 重温JSP学习笔记--三大指令九大内置对象

    最近在温习javaweb的相关基础知识,鉴于我弄丢了记满了整整一本的笔记,决定以后把笔记和一些学习上的心得以及碰到的一些问题统统都放在网上,今天看了一下jsp的相关基础,以下是笔记: JSP三大指令: ...

  3. WebGIS开源方案中空间数据的入库、编辑、发布的操作流程

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 本开源方案的构架是:geoserver(服务器)+tomca ...

  4. Kooboo CMS 无聊随笔(2)

    上次写了一篇博客 http://www.cnblogs.com/kmsfan/p/Kooboo_CMS_suibi.html 作为这个系列的开篇,简单的介绍了一下Kooboo CMS的一些基本情况和界 ...

  5. eclipse maven update error 解决方法

    eclipse  maven  update error 解决方法     本来真不想写这篇博文的,但是eclipse和maven真的是太操蛋了,动不动就出了一些乱七八糟的问题,记录一下.希望公司能早 ...

  6. 百度地图、ECharts整合HT for Web网络拓扑图应用

    前一篇谈及到了ECharts整合HT for Web的网络拓扑图应用,后来在ECharts的Demo中看到了有关空气质量的相关报表应用,就想将百度地图.ECharts和HT for Web三者结合起来 ...

  7. css3全屏背景图片切换特效

    效果体验:http://hovertree.com/texiao/css3/10/ 一般做图片切换效果,都会使用JS或者jQuery脚本,今天发现,其实只用CSS也可以实现.试试效果吧. 效果图: 代 ...

  8. C# Socket 模拟http服务器帮助类

    0x01 写在前面 0x02 Http协议 0x03 TCP/IP 0x04 看代码 0x05 总结 0x01 写在前面 由于工作中,经常需要在服务器之间,或者进程之间进行通信,分配任务等.用Sock ...

  9. 背水一战 Windows 10 (12) - 绘图: Shape, Path

    [源码下载] 背水一战 Windows 10 (12) - 绘图: Shape, Path 作者:webabcd 介绍背水一战 Windows 10 之 绘图 Shape - 图形 Path - 路径 ...

  10. PHP基本语法和输出语句方式