基于Ruby的watir-webdriver自动化测试方案与实施(五)
<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自动化测试方案与实施(五)的更多相关文章
- 基于Ruby的watir-webdriver自动化测试方案与实施(三)
接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ... 编写脚本 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(二)
接着基于Ruby的watir-webdriver自动化测试方案与实施(一) http://www.cnblogs.com/Javame/p/4159360.html 继续 ... ... 回顾 软 ...
- 基于ruby的watir自动化测试 笔记一
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(四)
接着基于Ruby的watir-webdriver自动化测试方案与实施(三) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ... 首先回忆 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(一)
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ...
- 基于ruby的watir自动化测试 笔记二
基于ruby的watir自动化测试 笔记一的补充版,新增加了些特殊的控件捕获方法.还在更新中.... attribute_value 获取当前控件的属性 Value = ie.link(:id=> ...
- <自动化测试方案_5>第五章、代码单元自动化测试
第五章.代码单元自动化测试 代码单元测试需要根据编程语言,选择单元测试框架,然后访问类方法,函数.代码单元测试做自动化,相比API.UI自动化做起来更加麻烦,建议放到待API自动化测试.UI自动化测试 ...
- 基于Ruby的Watir-WebDriver自动化测试框架
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ...
- 从0到1,教你实现基于Ruby的watir-webdriver自动化测试
一.为什么选择Ruby []完全开源. []多平台:Ruby可以运行在Linux, UNIX, Windows, MS-DOS, BeOS, OS/.. []多线程:线程就是指在一个程序中处理若干控制 ...
随机推荐
- php相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子
相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子包括五个部分: 一.相册首页 <html> <head> <meta charset="utf- ...
- 解决 android 高低版本 webView 里内容 自适应屏幕的终极方法
转载请声明出处(http://www.cnblogs.com/linguanh/) 一,先说下我的情况,大家可以对号入座(嫌无聊请跳过) 我的项目要求是这样的,先从数据库里面拿出来html标签,因为加 ...
- IOS 开发中要注意的事项
1.关于拍摄 TGCameraViewController – 基于 AVFoundation 的自定义相机.样式漂亮,轻量并且可以很容易地集成到 iOS 项目中.不会内存吃紧 2.block 中对控 ...
- 用PHP抓取页面并分析
在做抓取前,记得把php.ini中的max_execution_time设置的大点,不然会报错的.
- 【Java心得总结五】Java容器上——容器初探
在数学中我们有集合的概念,所谓的一个集合,就是将数个对象归类而分成为一个或数个形态各异的大小整体. 一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集.构成集合的事物或对象称作元素或是成 ...
- Linux服务器(Ubuntu14.04)添加远程连接VNC Server
1.打开终端输入:sudo apt-get install xrdp, 2. sudo apt-get install vnc4server , 3. sudo apt-get install ...
- ListView中的数据表格写入Excel中
SaveFileDialog sfd = new SaveFileDialog(); sfd.DefaultExt = "xls"; sfd.Filter = "Exce ...
- HTML基本结构
HTML简介 HyperText Markup Language:超文本标记语言 HyperText:超文本(文本 + 图片 + 视频 + 音频 + 链接) Markup Language:标记语言 ...
- 初学Python遇到的问题一二
这篇文章只是学Python最最最基础的部分知识,如果你已经有过python经验,哪怕就一点点经验,或许你都遇到过,但相信这些问题对你来说早已不算问题了,所以请跳过吧,用你的时间去学习更多其他的知识就好 ...
- JS设置CSS样式的几种方式
用JS来动态设置CSS样式,常见的有以下几种 1. 直接设置style的属性 某些情况用这个设置 !important值无效 如果属性有'-'号,就写成驼峰的形式(如textAlign) 如果想保 ...