免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4202 | 回复: 1
打印 上一主题 下一主题

watir webdriver使用分享 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-04 16:07 |只看该作者 |倒序浏览
watir webdriver使用分享





工作中用到watir,做web的自动化脚本。以前的自动化脚本是watir库的,只支持IE。

现在为了支持多浏览器,search了下,发现可以用watir-webdriver。它支持IE,firefox,chrome。



为了使用webdriver,必须对以前的脚本做些更改:
  1. 1. require 'watir'

  2. 改为
  3. require 'watir-webdriver'

  4. 没有了watir库,这个很多函数都不能使用了,具体区别可以看这个文章:

  5. https://github.com/jarib/watir-webdriver/wiki/Comparison-with-Watir-1.X

  6. 你可能会问,我同时使用2个库不可以吗,我试过,同时使用会报错的,不能共存。



  7. 2. 处理弹出框,比如弹出一个确定按钮

  8. watir库是:   

  9.           $ie.javascript_dialog.button('OK').click
  10. web-driver库对应是:  

  11.           $browser.driver.switch_to.alert.accept

  12.           $browser.driver.switch_to.alert.dismiss



  13. (以下都是webdriver中支持的)

  14. 3. 支持css定位

  15. $browser.element(:css=>".classname[title='#{name}']")



  16. 4.支持parent,就是找它的上一级

  17. $browser.link(:text,name).parent().parent()



  18. 5.当需要多属性定位时

  19. $browser.span(:class=>'ui-button-text',:text=>name)



  20. 6.等待元素被加载后再执行的,default is 30 sec

  21. •Watir::Wait.until { ... }: where you can wait for a block to be true
  22. •object.when_present.set: where you can do something when it’s present
  23. •object.wait_until_present:; where you just wait until something is present
  24. •object.wait_while_present:; where you just wait until something disappears


  25. 例如:

  26. btn=$browser.element(:css=>".content[title='hello’]").when_present(20).parent().button()
  27. btn.focus
  28. btn.click



  29. 7.watir-webdriver中定位index是从0开始,watir是从1开始



  30. 8.定位可以用多种方法,中间或用|

  31. cmd1="//input[@name='#{name1}']/../label[@class='abc'] | //textarea[@name='#{name1}']/../label[@class='abc']"

  32. $browser.element(:xpath,cmd1)



  33. 如果是watir库,用

  34. browser.element_by_xpath("//area[contains(@href , 'ahello.jsp')]").click()

  35. xpath语法可以参考:http://aguang520.iteye.com/blog/830928



  36. 9.定位table中行,可以用xpath也可以如下row,cell:

  37. tr1=$browser.element(:xpath,"//table/tbody/tr/td[contains(a,'#{name}')]").parent()

  38.   

  39. obj=browser.div(:class=>'hidetable‘).table().when_present
  40. rows = obj.rows.size

  41. text=obj.row(:index,3)[1].text                   #td

  42. browser.table(:class => "aa").row(:index, 1).cell(:index,0).fire_event("onclick")   #td
  43. browser.table(:class => "aa").row(:index, 1).fire_event("onclick")   #tr



  44. 10. 打印exception

  45. begin
  46. rescue Exception =>err1

  47.     print_message("Failed reason:" + err1)
  48. end



  49. 11. 检查是否定位的到元素

  50. puts $browser.element(:text,name).parent().exist?     #true or false

  51. puts $browser.element(:text,name).parent()               #tag name



  52. 12.处理checkbox

  53. $browser.checkbox(:name=>'aa').when_present(30).clear

  54. $browser.checkbox(:name=>'aa').when_present(30).set

  55. if not $browser.checkbox(:name=>'aa').when_present(30).checked?
  56.             return true
  57. end



  58. 13. select list

  59. if flag
  60.             $browser.select_list(:name,name1).when_present(60).select_value(value1.to_s)
  61. else
  62.             $browser.select_list(:name,name1).when_present(60).select(value1.to_s)
  63. end



  64. 14. input框

  65. $browser.text_field(:id,idname.to_s).when_present(10).set(value.to_s)

  66. value=$browser.input(:name=>name1).when_present(60).value
复制代码
参考网址:

http://watirmelon.com/2010/12/14 ... ailed-introduction/
http://rdoc.info/gems/watir-webdriver/0.3.5
http://wiki.openqa.org/display/WTR/Tutorial

论坛徽章:
0
2 [报告]
发表于 2011-11-07 22:39 |只看该作者
楼主 辛苦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP