ruby
文章平均质量分 63
乙醇很忙
8年开发测试开发经验,精通java js php html css ruby python object-c,web开发,移动开发,web测试开发,移动测试开发。4年selenium开发经验,给selenium贡献过代码。写了一本书https://github.com/easonhan007/webdriver_guide。webdriver,评价还不错。搭建和维护了watir-webdriver的官方中文站点17test.info。写了一个论坛itest.info。开源了一个测试框架lazym
展开
-
如何安装webdriver chrome浏览器支持
在gem 安装完watir-webdriver后,默认情况下chrome浏览器的支持是没有安装上的。所以如果要使用webdriver测试chrome的话,我们需要手动安装chrome支持。 RequirementsThe ChromeDriver controls the bro原创 2011-07-12 14:24:30 · 3528 阅读 · 1 评论 -
爱在watir(7)————关于等待
coco又遇到了一些问题,在她的印象里,好像在写watir的时候一直不停的遇到问题,不过在解决问题的过程中她觉得自己受益良多。其实做开发也是如此,基本上一直都是在了解自己不清楚的一些东西,不停的掉到坑里,然后慢慢爬出来,每次爬出都是成长。这次的问题是这样的:有时候页面上会有一些交互是非常动态的,比如点击一个按钮,然后出现一个弹出框。由于代码执行的很快,经常在弹出框还没有出现的时候代码就原创 2014-01-23 21:04:12 · 1121 阅读 · 0 评论 -
爱在watir(6)——关于frame的那些事情
fred对于tom暴力抗拒加班的行为非常生气。他化愤怒为食欲,早餐多吃了2个肉包。但是对于tom他却也无话可说。tom那天确实是提前完成了工作,而且做的很好,fred也挑不出什么毛病来。fred只是在第二天很客气的对tom说:"小伙子动作很麻利,手脚很快。不过你也要多注意点teamwork,有了teamwork才能带领团队更好的工作"。fred很郁闷,他现在已经在盘算着如何原创 2013-12-24 13:56:18 · 1325 阅读 · 2 评论 -
爱在watir(5)————关于alert的那些事情
coco病了,办公室很多人都病了,尽管秋天是伤感的季节,但不应该是流感的季节。不过很奇怪,今年的流感总是不期而至,徘徊数周,然后依依不舍的离去。好像程序员们的身体是病毒的理想宿主,因为他们总是在加班,疏于锻炼。coco平时也不太运动,对她来说运动量最大的事情莫过于逛街,这两年电商越发红火,coco连逛街都越来越少。由于缺乏锻炼,流感一到,coco第一个缴枪投降。tom想下班原创 2013-12-23 13:57:23 · 1204 阅读 · 0 评论 -
爱在watir(4)————弹出窗口
coco这几天有点不开心,这点tom是可以看出来的。tom挖空心思想去接近coco,但coco一副拒人于千里之外的模样,tom感觉现在他跟coco都是磁铁,而且磁极相同。好几天的沉默最终还是被coco打破了,她遇到了一个问题,让她百思不得其解的问题,万般无奈的情况下,她选择请教tom,因为她觉得也许tom可以帮到她,尽管她心里并不是很情愿这么做。tom红着脸走到原创 2013-12-23 13:52:27 · 1109 阅读 · 0 评论 -
爱在watir(3)——表单其实很简单
tom和coco最终还是没能一起吃宵夜。coco临时有点事情,在写完自动生成数据的代码后coco匆匆离去。第二天一早coco上班时发现代码正常的运行了,100条数据已经生成完毕,coco心中宽慰,对watir webdriver刮目相看。tom不知道为什么还没来上班,coco其实一直都有在留意tom,tom住的远,一般来的挺早,不会迟到,今天不知为何快到中午了他还没有过来,coco总觉得有原创 2013-11-25 09:45:25 · 99 阅读 · 0 评论 -
乙醇的webdriver实用指南ruby版本
webdriver实用指南是乙醇2013年分享计划的一部分,作为对已逝去的selenium2时代的追忆。 目录如下启动浏览器关闭浏览器浏览器最大化设置浏览器大小访问链接打印当前页面的title及url前进和后退简单的对象定位定位一组对象层级定位操作测试对象send keys模拟按键输入处理button group处理button dropdown处理navs处理面包屑处理对原创 2013-11-21 09:59:36 · 1899 阅读 · 0 评论 -
作死的自动化测试
尽管现在已经不再做自动化测试了,但是对自动化测试还是保持一直保持关注的。就像是尽管跟女神相隔两地,无缘一睹真容,但还是悄悄关注她的微博,默默的在朋友圈中刷出关于她的点点滴滴。从业很多年了,做过很多项目,有成功有失败,但是自动化测试项目的失败率无疑是最高的。久而久之,便渐渐能够总结出一种自动化测试作死的节奏。节奏一:大神,帮帮忙啊,救命啊,老是搞不定啊这句话我经常看到,一般来原创 2013-09-05 10:20:15 · 2650 阅读 · 1 评论 -
ruby设计模式之【观察者】模式2————更加一般化的观察者模式
一般来说,观察者模式的定义应该是这样的:building a clean interface between the source of news that some object has changed and the consumers of that news。观察者模式在消息的生产者和消费者之间建立了clean interface,这样就使得消息的生产者和消费者之间的耦合是抽象的。被观原创 2011-11-07 09:10:36 · 701 阅读 · 0 评论 -
ruby中require和load的区别
今天在读rspec源代码的时候发现rspec会自动去load一些以_spec结尾的文件作为example 和 example group。在这里顺便说一下ruby里load和require的区别。load: 加载文件,比如load 'example.rb',不放重复加载require: 加载文件,比如load 'example',只加载1次代码说明:新建2个文件。test.rb,原创 2011-11-05 18:33:19 · 887 阅读 · 0 评论 -
ruby设计模式之观察者模式1————简单的观察者模式
观察者模式应该是最容易理解的设计模式了。考虑这个例子。作为雇员的你当工资发生改变的时候你会想到什么?请朋友吃饭?给女朋友买衣服?给自己买台Iphone4?很可惜,你所增加的那点可怜的工资恐怕难以支持你做以上这些事情吧。当你工资增加之后,你的个人所得税理所当然的增加了;你的住房公积金提高了;你的社保不出意外也要多交了。剩下来的那点应该也不够塞牙了。这个理应是喜剧的杯具中实际上包含原创 2011-11-05 18:17:18 · 976 阅读 · 0 评论 -
使用Enumerable模块实现简单的测试框架并进行数据统计
Ruby核心库中的Enumerable模块可能听起来很陌生,但实际上大家是应该经常接触到的。这里简单总结一下Enumerable模块的常用方法。The Enumerable mixin provides collection classes with several traversal and searching methods, and with the ability to sort.原创 2011-10-30 18:29:02 · 507 阅读 · 0 评论 -
ruby中::究竟代表什么?
昨天在stack overflow上问了2个关于Rspec源码的问题,结果由于表意不清加之问题含糊被老外鄙视了一遍。但是没有想到的是,竟然还是高人非常清楚的问答了出来。其中一个问题是这样的: class OptionParser < ::OptionParser这句代码究竟是什么意思?原来这句话的作用是定义1个OptionParser类,其集成至ruby核心库的OptionParse原创 2011-10-29 10:10:49 · 1713 阅读 · 0 评论 -
ruby 中super和super()的区别
我们经常要在子类的initialize方法中调用super和super()。从语法上说super和super()是有微妙区别的。super不带括号表示调用父类的同名函数,并将本函数的所有参数传入父类的同名函数;super()带括号则表示调用父类的同名函数,但是不传入任何参数;演示代码如下:class SParent def initialize *arg原创 2011-10-29 09:58:15 · 2195 阅读 · 0 评论 -
ruby设计模式之合成模式1————基本的合成模式
前几天在《戏说设计模式》这篇文章中看到了一段关于组合模式的描述:COMPOSITE—Mary今天过生日。“我过生日,你要送我一件礼物。”“嗯,好吧,去商店,你自己挑。”“这件T恤挺漂亮,买,这条裙子好看,买,这个包也不错,买。”“喂,买了三件了呀,我只答应送一件礼物的哦。”“什么原创 2011-07-26 19:46:16 · 438 阅读 · 0 评论 -
Ruby设计模式系列之模板模式
写过java的同学一定对java中无处不在的设计模式印象深刻。相比较而已ruby在设计模式这一块就显得稍微有些拿不出手了。作为一门动态到极致的语言,设计模式在ruby中的应用可能不太传统,有些许的变种。但万变不离其宗,在这里我们就通过一些ruby代码所描述的例子来理解和学习一些基原创 2011-07-13 23:33:33 · 313 阅读 · 0 评论 -
如何使watir-webdriver支持选择中文的下拉菜单
今天将waitr代码移植至watir-webdriver时,发现watir-webdriver的Select.select(text)方法似乎不支持中文的text。 也就是说watir-webdriver的select方法无法选择中文的option。 研究了一下源码发现Selec原创 2011-07-12 19:22:58 · 1746 阅读 · 1 评论 -
爱在watir(8)————细枝末节(完)
一个人的时候,tom喜欢把音乐声音放大最大,这样就没人可以打扰到他。在这段时间里,他是纯粹的,什么都不用想,一种断层的空灵。不过很可惜,工作以后tom越来越难得的完全放空一次。有人通过喝酒将自己放空,有人通过运动将自己放空,tom喜欢音乐,各种声音交杂在一起,他感到轻松,如释重负。tom最近心里总是藏着一些事情,像是负担着一块石头,总是无法落地。他清楚自己是记挂着coco,原创 2014-01-24 10:36:02 · 1555 阅读 · 1 评论