【转载】watir学习系列

上一篇 / 下一篇  2010-02-11 09:50:18 / 个人分类:Ruby&Watir

加载win32ole文件:     require ‘win32ole’
创建应用对象:         excel  = WIN32OLE.new("Excel.Application")
新建Excel文件:        excel.workbooks.Add      #默认Excel文件
                             excel.workbooks.Add 1   #单工作
创建Excel文件对象:    wb     = excel.ActiveWorkBook
创建工作表对象:       sheet  = web.ActiveSheet
打开Excel文件:        excel.workbook.open "文件路径名.xls"
取单元格值:           str    = sheet.Cell[1][2].Value
单元格赋值:           sheet.Cells[3][6].value = "test"
保存Excel文件:        wb.Save 或 wb.SaveAs "文件名"
退出Excel:            excel.quit
 

class CreateFile                 #定义类,类名首字母需大写
  def rows_to_file(rows)     #定义类方法
     @@data_rows  = rows  #定义类变量,无需申明变量类型
     @@content    = ''   

     @@filename   =  "c:\\filename.txt"  #定义文件路径
     @@data_rows.each do |x|             #遍历数组
      @@content = @@content + x.to_s + ‘-‘      #to_s:转换为字符串
    end
 #写文件,参数说明:"a+"  在原有内容后追加数据   "w" :先将文件清空,再写入
    File.open( @@filename, "a+" ) do |file|
      file.puts @@content
    end          
  end
end

rows = ['a','b','c']
CreateFile = CreateFile.new
CreateFile.rows_to_file(rows)

 

require 'watir'

 

#定义调用JS的类方法
class Watir::IE
  def run_script(js)
    ie.Document.parentWindow.execScript(js)
  end
end

 

ie = Watir::IE.new  
ie.goto("http://www.google.cn")  

js_string =  "alert(\"测试调用Javascript!\");"      

#调用类方法  
ie.run_script(js_string)

 

一、插入数据:

 require 'DBI'
require 'jcode'
$KCODE = 's' #设置汉字代码为EUC,windows环境为"s",linux环境为"e"#数据库变量
db_host = 'DBI:OCI8:TEST'
db_user = 'user
db_psw = 'passwpord

dbh = DBI.connect(db_host, db_user, db_psw) #连接数据库
#插入数据
insert_sql = "insert into table values('1','2')"
begin
rs = dbh.prepare(insert_sql)
rs.execute #执行SQL
dbh.commit #提交数据
rs.finish
rescue DBI::DatabaseError => e
puts "Error code : #{e.err}"
puts "Error message: #{e.errstr}"
ensure
dbh.disconnect if dbh
end

 

二、查询数据:

 

require  'DBI'     #加载DBI文件
require  'jcode'
$KCODE = 's'    #设置汉字代码为EUC,windows环境为"s",linux环境为"e"

#数据库变量
db_host      = 'DBI:OCI8:TEST'
db_user      = 'user'
db_psw       = 'password'
select_sql  = "select value1,value2 from table"
begin
   rs = dbh.prepare(select_sql)
    rs.execute                                                               #执行查询
    value_rows                   = rs.fetch_all                      #获取表数据
    column_names_rows  = rs.column_names            #获取表列名
    DBI::Utils::TableFormatter.ascii(column_names_rows,value_rows)  #以表格的格式输出
    DBI::Utils::XMLFormatter.table(value_rows)     #以XML的格式输出
    rs.finish
rescue DBI::DatabaseError => e
    puts "Error code : #{e.err}"
    puts "Error message: #{e.errstr}"
ensure
    dbh.disconnect if dbh
end

 

 

三、删除数据:

 

require 'DBI'
require 'jcode'
$KCODE = 'e'     #设置汉字代码为EUC,windows环境为"s",linux环境为"e"

#数据库变量
db_host      = 'DBI:OCI8:TEST'
db_user      = 'user'
db_psw       = 'password'

dbh = DBI.connect(db_host, db_user, db_psw)  #连接数据库
#删除数据
delete_sql = "delete from table where value1 =? and value2=?"
begin
   rs = dbh.prepare(delete_sql)
   rs.execute('1','2')
   dbh.commit
    rs.finish
rescue DBI::DatabaseError => e
    puts "Error code : #{e.err}"
    puts "Error message: #{e.errstr}"
ensure
    dbh.disconnect if dbh
end

 

 

文本框:
         <INPUT id="email" name="_fmu.u._0.e" value="" />
     方法1: ie.text_field(:id,'email').set("文本内容")
     方法2: ie.text_field(:name, 'email').set("文本内容")
     方法3: ie.text_field(:name,"email").clear

 

下拉框:
        <SELECT name="cert_no">
           <OPTION value="身份证">身份证</OPTION>
         </SELECT>
    方法1: ie.select_list(:name,"cert_no").select("身份证")
    方法2: ie.select_list(:name,"cert_no").clearSelection

 

超链接:
          <a href = "http://www.google.cn/">google</a> 
    方法1:ie.link(:text,"google").click
    方法2:ie.link(:url,"http://www.google.cn/").click

 

复选框:
          <input type = "checkbox" name = "checkme" value = "1"> 
    方法1: ie.checkbox(:name,"checkme").set
    方法2: ie.checkbox(:name,"checkme").clear
    方法3: values = ie.checkbox(:name,"checkme").value
                     <input type = "checkbox" name = "checkme" value = "2"> 
     #多个同名的复选框处理
    方法1: ie.checkbox(:name,"checkme","2").set
    方法2: ie.checkbox(:name,"checkme","2").clear

 

单选框:
          <input type = "radio" name = "clickme" id = "1"> 
     方法1: ie.radio(:name, "clickme").set
     方法2: ie.radio(:name, "clickme").clear

 

一般按钮:
          <input type = "button" name = "clickme" value = "Click Me"> 
     方法1: ie.button(:value, "Click Me").click
     方法2: ie.button(:name,"clickme").click

 

submit按钮:
         <form. action = "submit" name = "submitform" method = "post">
             <input type = "submit" value = "Submit"></input>
          </form> 
    方法: ie.button(:value."Submit").click

 

图片按钮:
          <form. action ="submit" name = "doitform" method = "post">
             <input type = "image" src = "images/doit.gif" name = "doit">
          </form> 
    方法:ie.button(:name, "doit").click

 

Form中无按钮:
         <form. action = "login" name = "loginform" method = "get">
              <input name = "username" type = "text"></input>
          </form> 
    方法1:ie.form(:name,"loginform").submit
    方法2:ie.form(:action,"login").submit

 

获取隐含对象值:                                                                                
         <INPUT type=hidden value="您的Email" name="field1">                  
     方法:values = ie.hidden(:name,'field1').value                                             
                                                                                               
获取窗口对象:                                                                                  
    方法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/)              #正则表达式匹配获取  
                                                                                               
URL编码:                                                                                       
       require 'cgi'                                                                          
       string =  "URL编码"                                                                     
       string = CGI::escape(string)                                                            
       puts string                 # 转换结果: URL%B1%E0%C2%EB                                 
                                                                                               
URL解码:                                                                                       
      require 'cgi'                                                                            
       string =  "URL%BD%E2%C2%EB"                                                             
       string = CGI::unescape(string)                                                          
       puts string                  # 转换结果:URL解码                                        

 

一、gem介绍:
      gem是ruby管理包的工具,是ruby安装后自带工具,在安装包时会经常用到该工具

 

二、gem相关命令:
      显示gem的帮助:gem –h  
      显示gem版本号:gem –v
      更新gem版本:gem update --system 
      安装watir包:gem install watir
      运行build子命令构建gem包:gem build package.gemspec
      列出安装的gems:gem list 
      检查已安装的gem包:gem check
      卸载已安装的gem包:gem uninstall GEMNAME

 

一、JDK安装及配置:
   (1)默认安装JDK,路径如:C:"jdk1.5.0_11

               JDK下载地址http://java.sun.com/javase/downloads/index.jsp

    (2)配置环境变量:
           打开"我的电脑"右键属性--"高级"--"环境变量"页面,

          在系统变量里,添加变量JAVA_HOME,变量值:C:"jdk1.5.0_11

          在系统变量里,添加变量CLASSPATH,变量值:.;%JAVA_HOME%"lib
           在系统变量里,在变量Path变量值前增加:%JAVA_HOME%"bin;


二、Eclipse下载安装: 
        下载地址: http://www.eclipse.org/downloads/

        安装方法:将下载的Eclipse解压到c:"eclipse


三、RDT安装配置 : 
    下载地址:http://sourceforge.net/project/showfiles.php?group_id=50233
    安装方法:将RDT解压到eclipse目录:c:"eclipse
    安装说明: http://rubyeclipse.sourceforge.net/download.rdt.html
    相关配置方法: http://os.51cto.com/art/200605/26177.htm

 


一、安装ruby:
      ruby下载地址:http://www.ruby-lang.org/zh_CN/downloads/

      下载Windows一步安装版,默认安装,安装成功后可以运行命令查看版本:ruby –v

 

二、安装watir:
   1.运行命令先更新gem:gem update --system

    2.运行命令安装watir: gem install watir

 

三、安装 oci
      ruby ruby-oci8-0.1.16-mswin32.rb   
     下载地址:http://rubyforge.org/frs/download.php/41043/ruby-oci8-1.0.3-mswin32.rb

 

四、安装DBI
      下载地址:http://rubyforge.org/frs/download.php/33960/dbi-0.2.0.zip

       安装步骤:1.将下载的DBI解压到C:"dbi

                         2.分别在命令行中运行下面命令安装:

                             cd c:"dbi

                             ruby setup.rb config 

                             ruby setup.rb setup

                             ruby setup.rb install 

 

五、安装IE Developer Toolbar(IE插件,可选)
     下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&displaylang=en

 

六、WatirRecorder++(watir脚本录制工具)
      下载:http://www.hanselman.com/blog/content/binary/WatirRecorder_Setup_lite.msi


TAG:

 

评分:0

我来说两句

Open Toolbar