爱在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代码如下: & ...
随机推荐
- SQL -主键&外键
在创建表的时候,添加主键 CREATE TABLE table_name (column_1 char(10) PRIMARY KEY, column_2 char(10) ) 如果已经创建了表,如何 ...
- 13 - NSURLConnection
一.互联网 基本概念: HTTP协议 统一标准获取网络资源(其他设备上的东西) 本机 -> 远程服务器(计算机) URL(http有格式的字符串) 本机 <- 远程服务器(计算机) Fil ...
- java操作Excel处理数字类型的精度损失问题验证
java操作Excel处理数字类型的精度损失问题验证: 场景: CELL_TYPE_NUMERIC-->CELL_TYPE_STRING--->CELL_TYPE_NUMERIC POI版 ...
- ecosphere是什么意思_ecosphere的翻译_音标_读音_用法_例句 - 必应 Bing 词典
ecosphere是什么意思_ecosphere的翻译_音标_读音_用法_例句 - 必应 Bing 词典 ecosphere
- 怎样在android实现uc和墨迹天气那样的左右拖动效果
import android.app.Activity; import android.os.Bundle; import android.content.Context; import androi ...
- hdu 2896 病毒侵袭 AC自动机 基础题
病毒侵袭 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- [ACM] hdu 1251 统计难题 (字典树)
统计难题 Problem Description Ignatius近期遇到一个难题,老师交给他非常多单词(仅仅有小写字母组成,不会有反复的单词出现),如今老师要他统计出以某个字符串为前缀的单词数量(单 ...
- sharepoint 2013 根据网站模版创建网站,并赋值网站权限 create a site by custom site template
通过程序,根据网站模版,创建新的网站 private void CreateSiteBySiteTemplate() { SPSecurity.RunWithElevatedPrivileges(de ...
- Java引用详解
区分几个概念 ,类 .对象 .对象的引用 A a1 = new A(); A a2 = a1; a1-------------------->对象内存<---------------- ...
- 解决swfupload上传控件文件名中文乱码问题 三种方法 flash及最新版本11.8.800.168
目前比较流行的是使用SWFUpload控件,这个控件的详细介绍可以参见官网http://demo.swfupload.org/v220/index.htm 在使用这个控件批量上传文件时发现中文文件名都 ...