一. iframe处理
由于IE安全处理机器,某些情况下watir不能识别iframe中控件,处理方法有
1. IE-安全中把测试站点设置为可信任站点
2. 直接获取ifrmae的src属性,ie对象直接goto那个url
3. 如果直接进入url会有ie安全弹框,在ie-安全-自定义级别-其他-是否显示混合内容关掉
二. 文本编辑器处理
<iframe id="editor_ifr" frameborder="0" src="javascript:""" allowtransparency="true" title="{#aria.rich_text_area}按 ALT-F10 定位到工具栏.按 ALT-0 获取帮助。" style="width: 100%;height: 256px; display: block; min-height: 256px;">
<html>
<head xmlns="http://www.w3.org/1999/xhtml">
<body id="tinymce" class="mceContentBody " contenteditable="true" spellcheck="false" style="overflow-y:hidden; padding-bottom: 50px;" dir="ltr">
</html>
</iframe>
这样的,直接如下处理:
ie.frame(:id,"editor_ifr").document.body.innerText= "hello world"
这种方式输入frame框中的内容会在其他所有操作结束后才显示,先focus其外层的控件比较好用
三. 获取已打开IE的方式
方法1: ie2 = Watir::IE.attach(:url,'http://www.google.cn/') #根据URL获取
方法2: ie3 = Watir::IE.attach(:title,'Google') #根据窗口标题获
方法3: ie4 = Watir::IE.attach(:title, /google.cn/) #正则表达式匹配获取
四. <a>标签处理
<a>标签如果写的很简单直接用:text 定位
1.ruby区分大小写!!!!
今天处理时间日期格式的时候一顿困扰
vt = Time.new
vtime = vt.strftime("%H%M%S")
vdate = vt.strftime("%Y%m%d")
%H %M %S都是要大写
%Y 是2012
%y 是12
2.FileUtils.makedirs(vpath) 强制创建目录
五.获取dom元素的style属性
考虑如下的html代码
<a id = "idA" href ="blog.sina.com.cn/nakrul1" style = "width:200px">浮云的blog</a>
获取width大小的ruby代码
width = ie.link(:id,'idA').attribute_value('style').invoke('width')
通过dom元素的事件属性,例如onclick onfocus等来定位识别特定元素
考虑下面的html代码:
<div onclick = "do_event()"></div>
<div></div>
<div></div>
我们如果要定位有onclick属性的div,我们可以这样做:
ie.divs.each do |d|
return d ifd.html.contains?('onclick')
end
Ps:attribute_value 方法可以用来获取元素的特定属性值
六、获取服务器返回的状态码response = Net::HTTP.get_response(URI.parse(url)) #得到服务器的返回的数据
获取状态码 "#{response.code}"
七、获取特定class属性的div(通常用来查找一共有多少个相似的模块)
classlist = @ie.div(:class,"search-content").divs.find_all { |div| div.class_name == 'brick item person_item' }
search_num1 = classlist.length