爱在watir(1)----一切从搭讪开始
Tom和Coco是有名的加班狂人。Tom加班改bug,Coco加班回归bug。
两人经常加班到很晚,Tom是男孩子,很自然的担负起护送Coco的任务。他打车先送Coco回去,然后自己回家。不过Tom和Coco在路上交流很少,无非就是寒暄几句,问下bug的情况,然后抱怨几句。Coco一直认为Tom有点口吃,其实Tom说话还是挺流利的,只是一见到Coco他就莫名紧张,脸红脖子粗,像喝多了酒,舌头有点哆嗦。
Tom和Coco在同一个项目,Fred是项目经理。Fred有一种超凡的能力,那就是能让所有的人都讨厌他。老板讨厌他,工程师讨厌他,测试人员更讨厌他。Fred爱好空手道,他决定像空手道的段位一样,给每个测试人员也划分等级。Coco是抓虫能手,应该被封为1级。既然空手道叫黑带,那么测试人员的等级就叫白带好了。于是Coco被尊称为"白带九段"。后来在测试组的美眉们的强力反对下,这种等级制度才没有实施。
最近Fred住院了,因为他在车上见义勇为,怒斗小偷,结果被小偷的同伙群殴。好在Fred会一点空手道,在挨打时他一直紧紧的护着自己的要害部位,因此才没有被断子绝孙腿给重伤。诸位同事听到这个悲惨的消息不禁唏嘘:实在是太可惜了,怎么没把他打成太监。
Fred在医院努力为自己搜罗工伤的证据,项目这边没人督促,大家轻松了不少。
这天晚上大家走的都很早,唯独Tom和Coco两人在办公室加班。Tom本来没什么事,不过看到Coco留了下来,他直觉的感到今天可能是一个不错的机会。
Coco给Tom叫了外卖,吃完后Coco继续把今天修改的bug再重新回测一遍,Tom坐立不安,好几次站起来又坐下。他想找Coco搭讪,但是却找不到两个人之间应该聊些什么话题。Tom知道Coco应该去网上买衣服、鞋子、化妆品之类,但Tom对这些基本没什么研究。
到底应该去聊些什么好呢?Tom很为难。最后做了装口吃卖萌的最坏打算,Tom走到Coco座位旁边有些急促的、很不自然的问道:"hi,你在干什么呢?"
这是一句明知故问又很没养分的话,在《宅男把妹作死宝典》里,这句话高居作死榜第一名。不过Coco却看起来和高兴的说:"在回测bug,挺无聊的,但又必须做完。你呢,你今天的bug不是改完了么,怎么还没回去?"
Tom没有回答Coco的问题,他努力的平复了一下说道:"整天做一些重复性的工作实在是太辛苦了。我知道有个办法可以让电脑自动帮我们回测bug,你要是感兴趣的话,我可以教,你要是感兴趣的话,我可以教你"。
Coco疑惑道:"自动回测,那不太可能吧。"
Tom道:"真的可以的,用watir webdriver就可以。我正好略懂一点,教你的话可以吗?"
Coco嫣然一笑:"好啊好啊,尽管不知道这是什么,但是听起来却是很厉害的样子。"
Tom心中一喜,脸上自然流露出一点异样的表情,在Coco看来,那表情里满满都是想入非非的淫荡。
Tom赶紧把脸上的坏笑清除干净,他说道:"其实watir webdriver很简单了,我先教你部署坏境,也就是这个工具的开发环境。先要装好ruby,一般来说用rails installer就可以了。装好以后呢打开命令行,在命令行里输入 gem install watir-webdriver,然后喝杯咖啡就大功告成了。"
Tom一边说一边指导Coco操作,很快,watir webdriver就安装好了。
Tom接着说:"然后呢要下载一个叫做chrome driver的东西,因为我们的项目都是在chrome上面做测试,下载了chrome driver以后,我们就可以写代码控制chrome,让浏览器做任何事情都可以的。"
很快,coco在tom的帮助下从官网下载好了chrome driver,tom让coco敲了如下的一段代码来测试一下环境是否能正常工作。
require 'watir-webdriver'
Watir::Browser.new :chrome
coco敲错了几次后终于把正确的代码给写了出来,coco没想到简单的两行代码就能够出现如此多乱七八糟的错误,看来程序员这行饭也不容易吃。
coco把两行代码保存成了test.rb文件,然后在命令行里运行ruby test.rb,过了一会以后黑乎乎的命令行里打印出了一些东西,然后chrom浏览器被启动起来了。
"看!"tom兴奋的说,"chrome起来了,太棒了!"
coco疑惑的看着tom悠悠的问道:"这有什么好兴奋的,只是开了个浏览器而已,这东西怎么能帮我回测bug呢?"
tom不好意思的摸了摸头说:"打开浏览器是好的开始,接下来我再教你怎么去访问一个url。"
在tom的指导下,coco又在test.rb文件里加入了几行代码
require 'watir-webdriver'
b = Watir::Browser.new :chrome
b.goto 'www.17test.info'
b.close
运行完这个文件后,coco看到chrome浏览器被打开了,然后浏览器访问了watir-webdriver的官方中文站点——www.17test.info。
tom说道:"尽管这几行代码的功能很简单,但是你想想,如果我写个循环让代码自动去访问这个网页1000次,那样会不会比自己手动去访问17test.info1000次要省时省力呢?"
coco想了想,觉得很有道理。coco问道:"刚才我写的是ruby代码吧,不过我基本上不明白这几行代码是什么意思。"
tom说道:"今天已经晚了,我送你回家,你有空自己先看看ruby的语法,你有兴趣的话下次我继续教你。"
爱在watir(1)----一切从搭讪开始的更多相关文章
- 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新3)附高效动态压缩Bitmap
一.写在前面 爱吖校推如同它的名字一样,是一款校园类信息推送交流平台,这么多的家校互动类软件,你选择了我,这是我的幸运.从第一次在博客园上写博客到现在,我一次一次地提高博文的质量和代码的可读性,都是为 ...
- 开发者最爱的Firebug停止更新和维护
近日,Firebug团队在其官网上宣布,Firebug将不再继续开发和维护,并邀请大家使用Firefox的内置开发工具. Firebug最初是2006年1月由Joe Hewitt编写, ...
- Win下最爱效率利器:AutoHotKey
AutoHotkey是一个windows下的开源.免费.自动化软件工具.它由最初旨在提供键盘快捷键的脚本语言驱动(称为:热键),随着时间的推移演变成一个完整的脚本语言.但你不需要把它想得太深,你只需要 ...
- Menu与ActionBar的爱恨情仇
最近在开发一款音乐播放器,在开发过程中遇到了一点小麻烦,通过android API搞清楚了Menu与ActionBar的爱恨情仇,写了个小Demo祭奠一下那些年我们陷进去的坑,有不对的地方请大神们批评 ...
- “我爱背单词”beta版发布与使用说明
我爱背单词BETA版本发布 第二轮迭代终于画上圆满句号,我们的“我爱背单词”beta版本已经发布. Beta版本说明 项目名称 我爱背单词 版本 Beta版 团队名称 北京航空航天大学计算机学院 拒 ...
- 爱与恨的抉择:ASP.NET 5+EntityFramework 7
EF7 的纠缠 ASP.NET 5 的无助 忘不了你的好 一开始列出的这个博文大纲,让我想到了很久之前的一篇博文:恋爱虽易,相处不易:当EntityFramework爱上AutoMapper,只不过这 ...
- 如何寻找“真爱”型合伙人
曾与朋友笑侃,现在找人结婚,跟合伙开公司差不多,各自条件一一对比,细细斟酌,最后双方达成一致,才得凑成一对冤家.谁说不是呢?两种关系都实为"伙伴",开公司重" ...
- web移动端fixed布局和input等表单的爱恨情仇 - 终极BUG,完美解决
[问题]移动端开发,ios下当fixed属性和输入框input(这里不限于input,只要可以调用移动端输入法的都包括,如:textarea.HTML5中contenteditable等),同时存在的 ...
- 程序员用HTML5制作的爱心树表白动画
体验效果:http://keleyi.com/keleyi/phtml/html5/31.htm 推荐:http://hovertree.com/texiao/css3/18/ HTML代码如下: & ...
随机推荐
- Excel VBA ——批量工作表重命名
虽然平常在用excel 2010重命名工作表的时候,一般可能会用"双击工作表"的方法来重名,但是遇到大批量重名的时候就很麻烦. 我的方法,先建一张新表,然后在第一列写好要命名的表名 ...
- UVa 10330 Power Transmission / 最大流
最大流 这题有很多起点和终点 在取2个点(0和n+1) 作为唯一的起点和终点 此外每个点也有容量限制 建图时每条边上的容量为这条边和2个端的容量的最小值 然后EK就行 #include <cst ...
- 获取CPU序列号
public string GetCPUSerialNo() { string cpuSerialNo = string.Empty; ManagementClass managementClass ...
- Spring MVC 学习笔记 json格式的输入和输出
Spring mvc处理json需要使用jackson的类库,因此为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用 <!-- json --> <dep ...
- Node.js and Forever “exited with code: 0”
CentOs 6.5 using root acount, I have a working Node.js Express app: root@vps [/home/test/node]# npm ...
- 添加Main-Class到manifest中
Maven默认打包生成的jar是不能够直接运行的,因为带有main方法的类信息不会添加到manifest中(打开jar文件中的META-INF/MANIFEST.MF文件,将无法看到Main-Clas ...
- jQuery.localStorage() - jQuery SDK API
jQuery.localStorage() - jQuery SDK API jQuery.localStorage() From jQuery SDK API Jump to: navigati ...
- display:inline-block的运用
在实习中做专题时,遇到的一个问题:建立一个宽度很长的一个页面,里面包含许多列.或许许多人认为直接设置float:left:不就行了 但是这个有一个问题,你必须把外面的div的宽度设置的很长已满足大于所 ...
- Solr4.2迁移到新项目下异常:java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>
由于业务调整,需要将solr搜索项目集成到另一个项目下成为一个模块,原项目运行异常,但是迁移到新项目后出现异常如下: 原因:引入的httpclient.jar冲突 解决方法:删除冲突的jar
- 【解决方法】System.IO.FileNotFoundException
错误日志 See the end of this message for details on invoking just-in-time (JIT) debugging instead of thi ...