博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用watir操作table中指定的项

Posted on 2009-06-17 16:30  Watir  阅读(1229)  评论(0编辑  收藏  举报

有这样的表格:

table

这里,我们需要根据菜单名称列的文字来操作指定行的操作,如根据“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