有这样的表格:
这里,我们需要根据菜单名称列的文字来操作指定行的操作,如根据“ruby自动化测试菜单名称”这几个文字来操作这一行选择复选框,操作编辑功能等。
编写ruby脚本的思路:
1) 首先利用watir处理表格的功能,得到指定的table
2) 其次,对这个table第几列进行循环检测,如果匹配到指定的文件,那么返回这个Table的tr对象
3)根据这个返回的tr对象,就可以进行指定的操作了
基础方法脚本编写:
根据这个思路,我们设计两个方法:
=begin
功能描述: 得到指定的table
参数描述: table_sym_type:属性类型;table_sym_name:属性值;
返回类型: 返回指定的table对象
调用方法:get_table(ie,"id","yui-dt0-bodytable")
=end
def get_table(ie,table_sym_type,table_sym_name)
return ie.table(table_sym_type.to_s,table_sym_name.to_s)
end
=begin
功能描述: 得到指定的table中的匹配行
参数描述: table:指定的talbe,column:需要匹配的列,match_value:需要匹配的值
返回类型: 返回指定的tr(行)
调用方法: get_table_tr_by_match_value(table,3,"ruby自动化测试菜单名称")
=end
def get_table_tr_by_match_value(table,column,match_value)
begin
rows = table.row_count
for i in (1..rows)
tr = table.[](i)
td = tr.[](column)
if td.innerText.match(match_value) then
return tr #当匹配到时,就返回tr
break
end
end
rescue
# capture_screen
end
end
自动化实行方法编写
有了这些基础方法后,就可以直接使用,来实行自动化脚本了
require ‘watir’
ie = Watir::IE.attach(:url,/matchurl/)
table = get_table(ie,"id","yui-dt0-bodytable")
tr = get_table_tr_by_match_value(table,3,"ruby自动化测试菜单名称")
tr.check_box(:name,nameValue).set
tr.link(:text,textvalue).click