随笔分类 -  ruby&watir相关

ruby正则预查模式的使用
摘要:先看一段例子:str2 = "abcdefghi"puts str2.scan(/ab(c)/) 输出c,/ab(c)/的意思是指匹配abc,但只取出()里面的字符串puts str2.scan(/ab(?:c)/) 输出abc,/ab(?:c)/的意思是指匹配ab后,判断ab后面是否跟着c,如果是则取出abc,不是则为nilputs str2.scan(/ab(?=c)/) 输出ab,/ab(?=c)/的意思是指匹配ab后,判断ab后面是否跟着c,如果是则取出ab,不是则为nilputs str2.scan(/ab(?!d)/) 输出ab,/ab(?!d)/的意思是指匹配 阅读全文

posted @ 2011-06-02 14:03 张飞_ 阅读(596) 评论(2) 推荐(0) 编辑

ruby解析XML
摘要:require 'rexml/document' doc = REXML::Document.new(File.open("test.xml")) root = doc.root rtnValue = root.get_elements("COM1") #rtnValue = root.elements["COM1"].text rtnValue.each{|re| puts re.text } #puts rtnValueXML文件:<?xml version="1.0" encoding= 阅读全文

posted @ 2011-05-04 11:29 张飞_ 阅读(2981) 评论(0) 推荐(0) 编辑

Watir Popup 采用新线程进行处理
摘要:require 'watir'require 'win32ole'$h"A I o T9~o#n*X*~0def check_for_popups(title="Microsoft Internet Explorer", button="OK")51Testing软件测试网0T o A-F e w8q ? popup=Thread.new{&g7U(j9J,W y0 autoit=WIN32OLE.new('AutoItX3.Control')51Testing软件测试网(d q" 阅读全文

posted @ 2011-04-15 15:41 张飞_ 阅读(311) 评论(0) 推荐(0) 编辑

ruby and watir中timeout类的用法
摘要:在watir中的goto函数,是会等待浏览器一直加载完成后,才接着往下执行,但如果由于某些原因,浏览器卡在那里过不去,而导致程序一直无法往下执行,就不和谐了在这里可以采用timeout的办法,即超过一定的时候即使浏览器还在加载,也会接着往下执行,具体方法如下: begin Timeout::timeout(6) do @ie.goto("baidu.com") end rescue Timeout::Error => e puts e.message end 阅读全文

posted @ 2011-04-14 10:58 张飞_ 阅读(960) 评论(0) 推荐(0) 编辑

ruby system用法
摘要:system("")括号里面的参数的写法与windows CMD的语法相差不多:system("cd .. && 1.bat") 阅读全文

posted @ 2011-04-07 18:36 张飞_ 阅读(2731) 评论(0) 推荐(0) 编辑

ruby 正则预查模式
摘要:零宽正回顾后发断言 零宽正预测先行断言 /(?<=behind) (?=ahead)/ /(?<!not-behind) (?!not-ahead)/ 负向零宽后发断言 负向零宽先行断言str = "str wait"str1 = "str wert"puts str1 =~ /str\s*\n\s*(?!wait)/正向预查比如:有一个字符串:abcdefghi/ab(c)/ 将匹配出来abc 并将c储存到$1/ab(?:c)/ 将匹配出来abc 并不会将c储存到$1/ab(?=c)/ 将匹配出来ab,没有匹配出abc,那么c起什么作用呢, 阅读全文

posted @ 2011-04-07 17:14 张飞_ 阅读(477) 评论(0) 推荐(0) 编辑

IE6下调用inetcpl.cpl清除COOKIE的方法
摘要:require 'win32ole'ai = WIN32OLE.new("AutoItX3.Control")ai.Run("CONTROL.EXE inetcpl.cpl,,0")ai.WinWaitActive("Internet 属性","")ai.ControlClick("Internet 属性","删除 Cookies(&I)...","Button6")ai.WinWaitActive("删除 Cookies 阅读全文

posted @ 2011-03-29 11:22 张飞_ 阅读(831) 评论(0) 推荐(0) 编辑

watir调用js
摘要:require 'watir'ie = Watir::IE.newie.goto(" http://www.google.cn")ie.document.parentWindow.execScript("alert(\"测试调用Javascript!\");") orie.document.getElementById('txtUsername').readOnly = trueorjs = %{ie.document.getElementById('txtUsername').read 阅读全文

posted @ 2011-03-23 16:51 张飞_ 阅读(578) 评论(0) 推荐(0) 编辑

watir识别IE版本号
摘要:watir识别IE版本号:require 'watir'$browser = Watir::IE.new()full_ver =$browser.document.invoke('parentWindow').navigator.appVersiontmp_str =/MSIE\s(.*?);/.match(full_ver)$ie_ver = tmp_str[1]puts "IE VERSION = #{$ie_ver}" 阅读全文

posted @ 2011-03-17 15:34 张飞_ 阅读(215) 评论(0) 推荐(0) 编辑

ruby用cmd运行时传参数到程序中去
摘要:test.rbputs $*[1]puts $*[0]用CMD运行时:ruby test.rb 2 3会输出:32即用$*[]来接收参数orARGV[1]ARGV[0]来接收参数 阅读全文

posted @ 2011-03-15 10:16 张飞_ 阅读(2909) 评论(0) 推荐(0) 编辑

ruby格式化
摘要:str = "%i+2"str1 = str % [3]count = 3m = eval("%i+2" % [count]) puts m 阅读全文

posted @ 2010-11-20 16:20 张飞_ 阅读(394) 评论(0) 推荐(0) 编辑

ruby class_eval的使用
摘要:class T1endarr = {:a=>1,:b=>2}arr.each do |k, v| T1.class_eval "def self.#{k.to_s}\n #{v}\n end"endputs T1.a 阅读全文

posted @ 2010-11-17 15:33 张飞_ 阅读(819) 评论(0) 推荐(0) 编辑

ruby修改TXT文件
摘要:修改的方法:1.读取文件2.遍历读取的内容,把修改后的字符串存在buffer中3.把buffer中的内容写到文件中代码如下: File.open(path,"r") do |lines| buffer = lines.read.gsub(/newstest/,"test") File.open(path,"w"){|l| l.write(buffer) } 阅读全文

posted @ 2010-08-27 17:20 张飞_ 阅读(2762) 评论(1) 推荐(1) 编辑

watir输出显示中文
摘要:对于Watir 1.6.5, 将\Ruby\lib\ruby\gems\1.8\gems\watir-1.6.5\lib\watir\win32ole.rb文件中的语句WIN32OLE.codepage=WIN32OLE::CP_UTF8替换成WIN32OLE.codepage=WIN32OLE::CP_ACP然后在代码中加上 require 'win32ole' $kcode='e',即可让watir支持中文字符。 阅读全文

posted @ 2010-08-10 16:37 张飞_ 阅读(365) 评论(0) 推荐(0) 编辑

watir学习之—如何遍历页面所有的超链接
摘要:需求:要把一个页面的所有删除超连接都点击一遍,且事先不知道会有多少删除的连接代码:require 'watir' @ie = Watir::IE.new@ie.goto(url)count = 0@ie.links.each do |l| if l.name=~/delete/ count = count + 1 end end for i in 0..count-1if @ie.link(:name,'delete').exist? puts "exist"@ie.link(:name,'delete').click@ie. 阅读全文

posted @ 2010-08-10 15:41 张飞_ 阅读(690) 评论(0) 推荐(0) 编辑

ruby 连接mysql数据库
摘要:连接方法:1.需要的gem:rubygems-update-1.3.7.gem mysql-2.7.3-mswin32.gem2.这两者安装完之后,运行,发现报错,原来是缺少了libmysql.dll3.拷贝libmysql.dll文件到c:\windows\system32下面4.代码:def connect_mysql(host,username,pw,database,port,sql) dbh=Mysql.real_connect(host,username,pw,database,port) begin #yield dbh.query(sql) dbh.query(sql... 阅读全文

posted @ 2010-08-10 15:39 张飞_ 阅读(803) 评论(0) 推荐(0) 编辑

watir api补充
摘要:button<input> tags with type=button, submit, image or resetradio<input> tags with the type=radio; known as radio buttonscheck_box<input> tags with type=checkboxtext_field<input> tags with the type=text (single-line), type=textarea (multi-line), and type=passwordhidden<inpu 阅读全文

posted @ 2010-08-06 18:30 张飞_ 阅读(885) 评论(0) 推荐(0) 编辑

watir如何取到元素的css属性
摘要:研究了半天,查了半天资料,终于把watir如何取出元素的css搞定贴代码:thisstyle = @ie.element_by_xpath("//div[@class='sh']/h1")puts thisstyle.currentStyle.backgroundimage但有一点,如果采用:thisstyle.document.currentStyle.backgroundimage则会取出h1的CSS所继承的父CSS的属性。以上备忘!分享链接:http://doyouhaobaby.net/manual/html/objects/currentStyle 阅读全文

posted @ 2010-08-06 15:17 张飞_ 阅读(424) 评论(0) 推荐(0) 编辑

Watir::IE.attach与IE7选项卡的设置关系
摘要:昨天郁闷了半天,发现几个问题:先贴代码:require 'watir' @ie=Watir::IE.new @ie.goto "hao123.com"@ie.link(:id,"hao_img_logo").clickputs @ie.exists?puts Watir::IE.attach(:url,/www.baidu.com/).exists?@ie1 = Watir::IE.attach(:url,/www.baidu.com/)if (@ie1.exists? == 8)puts "true"@ie1.clo 阅读全文

posted @ 2010-08-04 10:50 张飞_ 阅读(1531) 评论(0) 推荐(0) 编辑

ruby and watir学习之_Hash 类
摘要:Hash类说明函数名称说明示例==判断两个 Hash 是否相等h1 = {"a" => 1, "c" => 2}h2 = { "a" => 1, "c" => 2, 7 => 35 }h1 == h2 » false[ ]返回指定键值对应的对象h = { "a" => 100, "b" => 200 }h["a"] » 100 h["c"] » nil[ ]=向 H 阅读全文

posted @ 2010-07-28 13:22 张飞_ 阅读(1058) 评论(0) 推荐(0) 编辑

导航