watir常见问题列表
在群里跟大家交流时,我们发现很有问题是回被反复提及的,就像是每晚的某档黄金时间的新闻节目一重复而无趣。在这里我们为大家建立一个watir常见问题列表,希望对大家会有所帮助。
watir如何进行分布式?
目前我接触到已有的成功案例是这样做的:1台hudson server 多台slave,每台slave独立分布运行测试用例;另外据传可以使用stat,这个原理应该跟hudson差不多,大家可以试试。
如何获取具体的错误信息呢?
我们经常会碰到这样的问题:我们需要将watir在运行时所碰到的一些错误log下来。这时候我们可以用到下面3个东东:
__LINE__:#当前行的行号__FILE__:#当前的文件的文件名caller[0]:#当前调用的方法名称
好了,有了上述3个锦囊,信息写出非常易读易查的log将不是什么困难的事情。
如何去处理JS的弹出框?
很多使用watir的同学可能不知道,watir1.6.5中有原生方法操作JS的弹出框。
在watir/dialog文件中定义了2个类:Dialog和DialogButton。
Dialog.close方法可以关闭1个js弹出框; Dialog.exists?方法可以判断弹出框是否存在; Dialog.button(name).click方法包含name的窗口模拟按下Enter键;
使用方法:
require 'watir/dialog'dia = Watir.Dialog.newDialog::WindowName = '' #IE7和IE8中,js弹出框的title是不同的dia.exists? #可以用来判断js alert或js confirm是否存在dia.close #关闭弹出的对话框
require 'datahandler'd = DataHandler.new("data.csv")loginId = d.data[0].LoginId #--> line 1 of the csv file and column LoginIdpin = d.data[0].Pin #--> line 1 of the cvs file and column Pinb = Datahandler.new("data.xls")loginId = b.data[0].LoginId #--> line 1 of workbook 1 of the xls file with column LoginId# Remember that line 1 of the data is referenced by using 0 - and this excludes the header line.
ie.logger.level = Logger::ERROR