ruby常用的脚本API

ruby自动化

2018-12-06

31

0

Watir全称是“Web Application Testing in Ruby”,发音类似“water”。它是一种基于网页模式的自动化功能测试工具。
Watir基本api
# encoding: UTF-8
在脚本编写前首先要 require 'watir' 加载watir的api;确保可以访问Watir工具
1、新建浏览器,打开页面
MallLoginPage = Watir::Browser.start " https://www.baidu.com/"
也可以写成
Watir::Browser.new.goto("https://www.baidu.com/")
Attach的用法(获取已打开的浏览器对象)
MallMainPage = Watir::Browser.attach(:url, "#{SHOPMALL}/index.html")
关闭IE
browser.close
browser.close_all
窗口最大化
MallLoginPage.maximize
2、文本框输入
browser.text_field(:id,”username”).set value
清空文本输入框
browser.text_field(:name, "typeinme").clear
截图保存
browser.screenshot.save ("**.png")
点击button(按钮操作 )
browser.button(:name,”submit”).click
browser.button(:value, "Click Me").click
Checkbox的操作
brower.checkbox(:name, “enabled”).set #选中
browser.checkbox(:name, “enabled”).clear #清除
brower.checkbox(:name, “enabled”).checked? #是否已选
点击超链接
browser.link(:id,”linkid”).click
browser.link(:name => 'foo', :index => 1).click
browser.link(:text => "reply", :index => 2).click
设置复选框
brower.checkbox(:name, "checkme").set
brower.checkbox(:name, "checkme", "1").set # 使用name和value属性设置复选框
清除复选框
brower.checkbox(:name, "checkme").clear
brower.checkbox(:name, "checkme", "1").clear
设置单选框
brower.radio(:name, "clickme").set
brower.radio(:name=>'clickme', :index=>2).set
brower.radio(:name, "clickme", "1").set # 使用name和id属性设置单选框
使用name属性清除单选框
brower.radio(:name, "clickme").clear
brower.radio(:name, "clickme", "1").clear # 使用name和id属性清除单选框
设置下拉框
brower.select_list(:name, "selectme").select('Python')
brower.select_list(:name, "selectme").select_value('2')
使用name属性和值来清除下拉框
brower.select_list(:name, "selectme").clearSelection
ImageButton的点击(图片按钮)
brower.image(:src, /ok_big/).click
brower.image(:src, /ok_big/).fire_event("onclick")
嵌套(按层级查找对象)
brower.table(:class=>"",:index=>n).cell(:class=>"",:index=>n).text
brower.div(:class=>"",:index=>n).cell(:class=>"",:index=>n).text
brower.table(:id=>"").span(:class=>"").text
模拟特殊按键
brower.send_keys :enter
brower.element.send_keys [:control, 'a'], :backspace
brower.element.click(:shift, :control)
brower.send_keys("{PgDn 1}")
系统级调用键盘
autoit = WIN32OLE.new('AutoItX3.Control')
autoit.Send('{enter}')
Excel写入
require 'win32ole'
excel =WIN32OLE.new("Excel.Application")
excel.WorkBooks.Open("E:\\Web\\config.xlsx")
worksheet = excel.ActiveWorkbook.WorkSheets(1)
SHOPMALL =worksheet.cells[2][2].Value
excel.quit
txt写入
txt = File.open("E:/Web /Error_#{Time.now.strftime("%Y%m%d")}.txt","a+")
txt.puts ex.to_s
txt.puts ex.backtrace.join("\n")
txt.close
获取当前时间:
Time.now
Time.now.strftime("%Y%m%d%H%M")#截取拼接
异常处理
begin
if brower.text.include? "XXXX"
else
raise "Error信息"
end
rescue => ex #抛错
ensure
end
判断页面是否存在某元素或者文字等
brower.text.include? "非移动用户"
brower.link(:id,”id”).exist?
当前页面
@MallLoginPage.bring_to_front
 
API介绍
文本框
方法1:ie.text_field(:id,’email’).set(“文本内容”)
方法2:ie.text_field(:name.’email’).set(“文本内容”)
方法3:ie.text_field(:name,”email”).clear
下拉框
方法1:ie_select_list(:name,”cert_no”).select(“身份证”)
方法2: ie_select_list(:name,”cert_no”).clearSelection
链接:
方法1:ie.link(:text,”google”).click
复选框:
方法1:ie.checkbox(:name,”checkme”).set
方法2:ie.checkbox(:name,”checkme”).clear
方法3:values = ie.checkbox(:name,”checkme”).value
//多个同名复选框的处理,运用index方法
方法1:ie.checkbox(:name,”checkme”,”2”).set
单选框:
方法1:ie.radio(:name,”clickme”).set
方法2:ie.radio(:name,”clickme”).clear
一般按钮:
方法1:ie.button(:value,”Click Me”).click
方法2:ie.button(:name,”clickme”).click
Submit按钮
方法:ie.button(:value,”Submit”).click
图片按钮:
方法:ie.button(:name,”doit”).click
Form中无按钮
方法1:ie.form(:name,”loginform”).submit
方法2:ie.form(:action,”login”).submit
获取隐含对象值
方法:values = ie.hidden(:name,’field1’).value
 
---继承的方式
DetailPage.link(:id,"LJ_GWC").img(:class=>"vm").click
 
MallMainPage.send_keys:end
MallMainPage.send_keys:home
 
 
 
表格处理
1. b.table(:id=>"t").[](0) #获取第一行
2. b.table(:id=>"t").[](0).cells #获取第一行的所有单元格
3. b.table(:id=>"t").[](0).[](0) #获取第一行第一列的单元格
4. #注意上面列出的都是获取的元素(与其他诸如文本框空间等都有相同的父类)并不是文本
5. #对于以上所提到的对象,都是从Element继承而来,所以click,enabled?,exists?,fireEvent,flash,focus等方法都直接可以#使用。
 
 

发表评论

全部评论:0条

爱上风儿飞

小了白了兔,白了又了白

热评文章

推荐文章

热门标签