摘要: 如果使用Ruby脚本,uniq函数就能搞定一切。不过我们现在还是讨论怎么用excel的Countif函数吧。假设Excel中有一列数据:我现在想把重复的数据只留下一个,该如何处理?方法如下:1. 使用Countif函数,计算A列中各个数字重复次数,每次计算的行号是递增的2. 对Excel中所有列进行降序排列,得到如下图:3. 把B列所有大于1的行全部删除即可。 阅读全文
posted @ 2013-08-16 17:10 chenpassion 阅读(3866) 评论(0) 推荐(0) 编辑
摘要: 假设Excel中有两列,现在要比较两列数据的不同。我们可以使用Match函数(最后一个参数是0)或者VLookup函数来操作, C列中,#N/A标示,B列中没有A列中的数值。VLookup方法: 阅读全文
posted @ 2013-08-16 17:06 chenpassion 阅读(2229) 评论(0) 推荐(0) 编辑
摘要: require 'win32ole'ai = WIN32OLE.new("AutoItX3.Control")ai.RunWait("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255") 阅读全文
posted @ 2013-08-16 17:02 chenpassion 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 假设我书写了很多测试用例,测试用例中都有:require 'test/unit'后来我想把很多这样的测试用例组织在一起运行,我使用了两个require:require 'test/unit'require 'test/unit/ui/console/testrunner'于是我运行如下用例集合:include Test::Unit::UI::Console testcases = [TC_AddPeople] testcases.each{|testcase| TestRunner.run(testcase)}我得到的错误提示如下:Loaded 阅读全文
posted @ 2013-08-16 17:01 chenpassion 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 如果存在以下的场景:1. 放置在公司的读报机服务器,每天都是开启的;2. 读报机每天下载报纸,一旦成功/失败,就会有相应的记录生成在某个xml文件中;3. 现在有过去一年的读报机下载xml,大约有200多份,每份xml中存储了记录如下:现在你的经理想从测试人员你那儿获取一些知识:过去一年,我们的读报机功能,哪些报纸一直能够给客户下载?哪些报纸我们告诉客户是可以下载的,但是实际上是下载失败的?如果去找开发,也许通过连接数据库,运行一下SQL查询,记录就出来了,但是如果服务器不允许你访问,需要你统计结果,那怎么办?如果你会Ruby脚本,一切都非常简单:path = "C:\\Users\ 阅读全文
posted @ 2013-08-16 17:00 chenpassion 阅读(404) 评论(0) 推荐(0) 编辑
摘要: Similar Threads1. WIN32OLE - failed to create WIN32OLE2. WIN32OLE#[] and WIN32OLE#[]= method in Ruby 1.9 (or later)For example, excel = WIN32OLE.excel("Excel.Application") excel["Visible"] = trueis NG.Instead, You must write excel = WIN32OLE.excel("Excel.Application") e 阅读全文
posted @ 2013-08-16 16:57 chenpassion 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 如果安装了搜狗,Watir::Browser.new并不一定能打开新的IE浏览器。这种情况下,必须卸载搜狗浏览器,当然,attach,find方法还是可以用的 阅读全文
posted @ 2013-08-16 16:55 chenpassion 阅读(186) 评论(0) 推荐(0) 编辑
摘要: Watir-WebDriver对于已经打开的浏览器,没有办法进行Attach操作。但是对于自动化操作浏览器过程中点击某链接,打开的新浏览器,是能够定位到的。require 'watir-webdriver'def attach_browser(browser, how, url) browser.driver.switch_to.window(browser.driver.window_handles[0]) browser.window(how, /#{url}/).useendie2 = Watir::Browser.new :chromeie2.goto("ht 阅读全文
posted @ 2013-08-16 16:53 chenpassion 阅读(636) 评论(0) 推荐(0) 编辑
摘要: #Suppose we will access an SVN netrequire 'watir-webdriver'b = Watir::Browser.new :chromeb.goto 'https://admin:password@yourwebsite.com'#Firefox Deal with Certification:profile = Selenium::WebDriver::Firefox::Profile.new profile.assume_untrusted_certificate_issuer = falseb = Watir::B 阅读全文
posted @ 2013-08-16 16:51 chenpassion 阅读(267) 评论(0) 推荐(0) 编辑
摘要: Watir对富文本编辑,一般可以采用b.frame().document.body.innerText = "Value you want to insert"但是Watir-WebDriver不支持这种方法。不过有两种方法可以通过Watir-WebDriver向所见即所得编辑器(应该指的是富文本编辑器)中输入文字:定位编辑器所在的iFrame,然后使用.send_keys方法(缺点是浏览器必须在前台运行)在浏览器上执行javascript,通过js脚本去设置编辑器的值。#CKEditorrequire 'watir-webdriver'b = Watir: 阅读全文
posted @ 2013-08-16 16:50 chenpassion 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 以下代码支持Firefox,IE,Chromerequire 'watir-webdriver'#require "watir-webdriver/extensions/alerts"b = Watir::Browser.new :chromeb.goto("http://192.168.10.110:ab/PersonInfo.aspx")b.text_field(:id, "txtName").set("w3")b.text_field(:id, "txtPwd").set( 阅读全文
posted @ 2013-08-16 16:49 chenpassion 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 特别声明:该报表框架不是我搭建的。 阅读全文
posted @ 2013-08-16 16:47 chenpassion 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-08-16 16:46 chenpassion 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 我在群空间,总是看到很多Watir新手,反复的问:我对元素的定位怎么又出错?我该从哪里着手啊?我给一个我认为最简单方便的学习方法。1. Ruby语法基础要入门,网上有一个不到2M的帮助文档,从头到尾仔细瞅瞅,每个语句自己手动执行一下,Ruby就能入门了;2. 进入安装好的Ruby,Watir的目录:D:\Ruby193\lib\ruby\gems\1.9.1\gems\watir-classic-3.0.0,把该文件夹导出到eclipse或者Netbeans项目中,就这些Example一个个执行下去,之后基本上就是Watir入门了。 阅读全文
posted @ 2013-08-16 16:42 chenpassion 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 以下是一个很经典的把Watir与AutoIt连接在一起的实例。如果我们对AutoIT了解的更多,处理类似的问题会更加简单。以下实例会判断页面上是否有某“删除”链接,一旦有该链接,就点击,然后点击弹出的警告框上的“确定”按钮,直到页面上不再有“删除”链接为止。require 'watir'require 'win32ole'class WindowHelper def initialize( ) @autoit = WIN32OLE.new('AutoItX3.Control') end def push_alert_button() @autoi 阅读全文
posted @ 2013-08-16 16:41 chenpassion 阅读(508) 评论(0) 推荐(0) 编辑
摘要: class WIN32OLE def list_ole_methods method_names = ole_methods.collect {|m| m.name} puts method_names.sort.uniq endendWIN32OLE.new('Shell.Application').list_ole_methods得到如下方法:AddRefAddToRecentApplicationBrowseForFolderCanStartStopServiceCascadeWindowsControlPanelItemEjectPCExploreExplorerPol 阅读全文
posted @ 2013-08-16 16:39 chenpassion 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 对于Ruby 1.8版本,以管理员身份运行命令行窗口,输入Regsvr32 AutoItX3.dll路径即可。对于1.9 版本,路径与1.8版本是不同的,我们可以进入Ruby安装目录下,搜索AutoItX3.dll,搜索到之后,找到相应路径,然后以管理员身份运行命令行窗口,输入:regsvr32 D:\Ruby193\lib\ruby\gems\1.9.1\gems\rautomation-0.7.2\ext\AutoItX\AutoItX3.dll回车即可。 阅读全文
posted @ 2013-08-16 16:38 chenpassion 阅读(597) 评论(0) 推荐(0) 编辑
摘要: 为了提高自己的工作效率,我曾经对Watir进行了系统性的学习,比起学习C++,Java等始终不得门,Watir还是学进去了,能够完整搭建出一个自己很容易理解的自动化架构。之后我想继续在自动化测试方明提高自己,就把Ruby语言从头到尾走了一遍,还是有些收获的,虽然现在脑海里面也记不起来多少东西,但是就自动化测试这一方面来说,还是很有自信的。Watir,Ruby能够很大程度上提高测试效率,这点是毋庸置疑的,印象深刻的是,以下场景下,Watir和Ruby帮了我的忙。场景1:重现一些难以重现的Bug公司产品有一个功能,用户可以在google地图上画一条路线,然后可以在这条路线上跑步健身,从而进行一些统 阅读全文
posted @ 2013-08-16 16:36 chenpassion 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 1. Kill the taskcmd2="taskkill /F /IM typeperf.exe"stdout2=%x{#{cmd2}}2. Start counters:cmd="typeperf -cfc:\\test.txt>c:\\test3.csv"3. Get system info:require "sys/cpu"include SysCPU.processors{ |cs| cs.members.each{ |m| puts "#{m}: " + cs[m].to_s }}puts &q 阅读全文
posted @ 2013-08-16 16:34 chenpassion 阅读(349) 评论(0) 推荐(0) 编辑
摘要: b =Watir::IE.newb.goto'http://www.google.com/'txt =b.element_by_xpath("//*[@name='q']")txt.value= 'Richard Lawrence'btn =b.element_by_xpath("//*[@name='btnG']")btn.click@b.elements_by_xpath("//div[@class='UserServiceValues']").eac 阅读全文
posted @ 2013-08-16 16:32 chenpassion 阅读(462) 评论(0) 推荐(0) 编辑