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)----一切从搭讪开始的更多相关文章

  1. 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新3)附高效动态压缩Bitmap

    一.写在前面 爱吖校推如同它的名字一样,是一款校园类信息推送交流平台,这么多的家校互动类软件,你选择了我,这是我的幸运.从第一次在博客园上写博客到现在,我一次一次地提高博文的质量和代码的可读性,都是为 ...

  2. 开发者最爱的Firebug停止更新和维护

        近日,Firebug团队在其官网上宣布,Firebug将不再继续开发和维护,并邀请大家使用Firefox的内置开发工具.     Firebug最初是2006年1月由Joe Hewitt编写, ...

  3. Win下最爱效率利器:AutoHotKey

    AutoHotkey是一个windows下的开源.免费.自动化软件工具.它由最初旨在提供键盘快捷键的脚本语言驱动(称为:热键),随着时间的推移演变成一个完整的脚本语言.但你不需要把它想得太深,你只需要 ...

  4. Menu与ActionBar的爱恨情仇

    最近在开发一款音乐播放器,在开发过程中遇到了一点小麻烦,通过android API搞清楚了Menu与ActionBar的爱恨情仇,写了个小Demo祭奠一下那些年我们陷进去的坑,有不对的地方请大神们批评 ...

  5. “我爱背单词”beta版发布与使用说明

    我爱背单词BETA版本发布 第二轮迭代终于画上圆满句号,我们的“我爱背单词”beta版本已经发布. Beta版本说明 项目名称 我爱背单词 版本 Beta版 团队名称 北京航空航天大学计算机学院  拒 ...

  6. 爱与恨的抉择:ASP.NET 5+EntityFramework 7

    EF7 的纠缠 ASP.NET 5 的无助 忘不了你的好 一开始列出的这个博文大纲,让我想到了很久之前的一篇博文:恋爱虽易,相处不易:当EntityFramework爱上AutoMapper,只不过这 ...

  7. 如何寻找“真爱”型合伙人

          曾与朋友笑侃,现在找人结婚,跟合伙开公司差不多,各自条件一一对比,细细斟酌,最后双方达成一致,才得凑成一对冤家.谁说不是呢?两种关系都实为"伙伴",开公司重" ...

  8. web移动端fixed布局和input等表单的爱恨情仇 - 终极BUG,完美解决

    [问题]移动端开发,ios下当fixed属性和输入框input(这里不限于input,只要可以调用移动端输入法的都包括,如:textarea.HTML5中contenteditable等),同时存在的 ...

  9. 程序员用HTML5制作的爱心树表白动画

    体验效果:http://keleyi.com/keleyi/phtml/html5/31.htm 推荐:http://hovertree.com/texiao/css3/18/ HTML代码如下: & ...

随机推荐

  1. 原生app与web app的比较

    http://www.2ee9.com/news/news_show_36_237.html http://zhidao.baidu.com/link?url=7lWq2tgqiMiDmsRd54hO ...

  2. Sql语句中使用参数化的Top

    在sql中使用参数化的Top,Top后面的参数要用括号括起来. 例如: select top (@ts) ID, [Type], Title, Content, LinkMan, Tel, Check ...

  3. iOS 用GDataXMLNode创建和解析XML

    原文地址:http://blog.csdn.net/gf771115/article/details/7718403 NSError *error; //    NSString *path = [[ ...

  4. 01-IOSCore - NSString、NSFileManager、NSBundle、StringAndObjectConvert

    模型 1 将数据存储到硬盘,将硬盘上的数据在读回内存 2 文件存储: NSFileHandle 对文件的读写 NSData 二进制数据 NSString 表示文件路径 NSFileManager(对文 ...

  5. Ubuntu 14.04下安装GitLab指南

    摘要 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 在GitLab的官方网站上面对Ubuntu的支持也是很好的,有比较详尽的安装指南. ...

  6. 统一横轴墨卡托投影(UTM)

    UTM 坐标系统使用基于网格的方法表示坐标.UTM 系统将地球分为 60 个区,每一个区基于横轴墨卡托投影.画图法中的地图投影方法能够在平面中表示一个两维的曲面,比如一个标准地图.图 1 展示了一个横 ...

  7. 向架构师进军--->系统架构设计基础知识

    假设你对项目管理.系统架构有兴趣,请加微信订阅号“softjg”,增加这个PM.架构师的大家庭 在解说系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师和架构设计等相关的概 ...

  8. ean128与code128 条形码 算法分析

    [code128条形码组成] 除终止符(STOP)由13个模块组成外,其他字符均由11个模块组成 就是说,如果用‘1’表示黑线(实模块),用‘0’表示白线(空模块),那么每表示一个字符就需要11条线, ...

  9. 基于visual Studio2013解决C语言竞赛题之1027 YN

          题目 解决代码及点评 /* 计算Yn的值,直到|Yn - Yn-1|<10-6为止,并打印出此时共作了多少次COS计算. 提示:Yn+1=COS(Yn),故本 ...

  10. const与define的使用区别

    1.const用于类成员变量定义,一旦定义且不能改变其值.define定义全局常量,在任何地方都可以访问. 2.define不能在类中定义而const可以. 3.const不能在条件语句中定义常量 i ...