`
fs_fly
  • 浏览: 26120 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

watir webdriver使用分享

阅读更多

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

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

 

为了使用webdriver,必须对以前的脚本做些更改:

1. require 'watir'

改为
require 'watir-webdriver'

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

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

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

 

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

watir库是:  

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

          $browser.driver.switch_to.alert.accept

          $browser.driver.switch_to.alert.dismiss

 

(以下都是webdriver中支持的)

3. 支持css定位

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

 

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

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

 

5.当需要多属性定位时

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

 

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

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

    例如:

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

     

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

     

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

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

    $browser.element(:xpath,cmd1)

     

    如果是watir库,用

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

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

     

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

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

      

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

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

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

     

    10. 打印exception

    begin
    rescue Exception =>err1

        print_message("Failed reason:" + err1)
    end

     

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

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

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

     

    12.处理checkbox

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

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

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

     

    13. select list

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

     

    14. input框

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

    value=$browser.input(:name=>name1).when_present(60).value

     

     参考网址:

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

     

    分享到:
    评论

    相关推荐

      ruby 2.00 selenium webdriver,watir webdriver 备份打包

      Ruby 2.00、Selenium WebDriver 和 Watir WebDriver 是自动化测试领域中广泛使用的工具,尤其在Web应用程序的测试中。下面将详细讲解这三个概念及其相互关系。 Ruby 2.00 是Ruby编程语言的一个版本,发布于2013年,...

      watir-webdriver谷歌浏览器驱动

      ChromeDriver 是一款以 Google Chrome 为环境测试网站的工具,现已实现对开源的 WebDriver 通路协议的支持,因此可以轻松与现有的 WebDriver 测试工具相整合。不熟悉 WebDriver 的用户可以参考 2009 年的项目发布...

      linux环境下watir-webdriver离线安装包

      4. **安装gem**: 在命令行中,使用`gem install`命令来安装离线的Watir-Webdriver gem。确保你在gem文件所在目录执行此操作,例如: ``` gem install watir-webdriver-*.gem ``` 5. **验证安装**: 安装完成后,...

      WATIR-WEBDRIVER自动化学习指导

      WATIR-WEBDRIVER提供了一套全面且易于使用的API,使得测试人员能够方便地编写自动化测试脚本,覆盖Web页面上几乎所有类型的元素。通过上述示例可以看出,无论是简单的文本输入还是复杂的交互式元素,都可以通过WATIR...

      ruby2.0.0+selenium-webdriver+watir-webdriver+rails离线备份

      ruby2.0.0+selenium-webdriver+watir-webdriver+rails离线备份,设置环境变量后可使用(未测试)

      使用watir-webdriver删除百度空间所有文章的ruby脚本

      使用watir-webdriver删除百度空间所有文章的ruby脚本

      Watir-Webdriver最新安装文件(全)

      压缩包中包含目前2013/01/19最新的安装文件,有rubyinstaller-1.9.2-p136、DevKit-tdm-32-4.5.1-20101214-1400-sfx、rubygems-1.8.24、watir-4.0.2、watir-webdriver-0.6.2等文件,并附上简略安装说明。

      cukeit:使用 Cucumber+watirwebdriver 测试线束

      库克特cuke 它是一个Cucumber watirwebdriver 引导程序,它可以帮助您快速开始针对任何应用程序编写测试。 ##入门(Mac)安装 Xcode安装 Homebrew ruby -e "$(curl -fsSL ...

      domkey:Selenium Watir Webdriver 的域特定页面组件

      Selenium Watir-Webdriver 的域特定页面组件页面组件首先对特定语义域进行建模,然后对浏览器代码进行建模。 Watir-Webdriver 是蜜蜂的膝盖! 现在使用域特定页面组件工厂!用法Domkey 是一个库,可帮助您构建用于...

      watir-webdriver

      、IEDriverServer.exe rubyinstaller-2.1.5.exe、Ruby语言入门教程v1.0这几个文件,是使用wati-webdriver进行安装部署以及ruby语言学些所需要的必不可少的资料集合,在网上的都是零散的资料,这里能找到全套的。...

      test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriv

      总的来说,这个资源包提供了学习和实践Ruby自动化测试的一个实例,包括如何使用Logger模块进行日志记录以及如何利用Watir或Watir-Webdriver进行浏览器自动化测试。通过研究这个脚本,你可以深入理解Ruby在自动化测试...

      watir安装所需要的gem包

      `watir-webdriver`是Watir的一个版本,它使用Selenium WebDriver作为后端,与浏览器进行通信。而`selenium-webdriver`则是一个独立的库,提供了与各种浏览器(如Chrome、Firefox、IE等)交互的能力。 离线安装Watir...

      Watir测试框架介绍

      2. **Webdriver**: Watir使用WebDriver来驱动浏览器,所以需要安装对应的浏览器WebDriver。例如,对于Chrome,需要下载ChromeDriver,并将其路径添加到系统环境变量中。 3. **Watir库**: 在Ruby环境中,使用`gem ...

      win7上搭建cucumber+watir自动化环境

      Watir-webdriver是Watir的一个分支,专门用于WebDriver接口,支持多种浏览器的自动化测试。安装命令如下: ``` gem install watir-webdriver --no-rdoc --no-ri gem install watir-webdriver-performance --no-...

      IEDriverServer_Win32

      "Watir-webdriver"是一个Ruby库,它使用Selenium WebDriver协议来控制浏览器。 Watir(Web Application Testing In Ruby)是一种开源工具,允许通过Ruby代码自动化浏览器操作,而Watir-webdriver是其早期版本,用于...

      页面对象:在watir-webdriver和selenium-webdriver中实现PageObject模式的宝石

      它可以与watir和selenium-webdriver一起使用。 文献资料 项目是学习如何使用页面对象的第一个地方。 可以在上找到该项目的 。 要查看各个发行版之间的更改,请查看 要了解这种宝石的动机,请阅读此 有一本书...

      Watir1.6.5(commonwatir+firewatir+watir)+Ruby186-26

      3. **Watir-Webdriver**:随着WebDriver的流行,Watir也推出了Watir-Webdriver,这是一个更现代化的接口,它直接与WebDriver协议通信,使得测试可以跨浏览器平台运行,包括Chrome、Firefox、Safari和Edge等。...

      ruby watir介绍文档

      - Watir基于Selenium WebDriver构建,因此可以直接使用WebDriver提供的功能。 ```ruby require 'selenium-webdriver' require 'watir' browser = Watir::Browser.new :chrome, driver: Selenium::WebDriver.for...

      ruby+watir 测试框架

      Watir的核心组件包括Watir-Webdriver,它直接与浏览器的WebDriver API进行交互,使得测试代码能够控制浏览器的行为。WebDriver是一个开放标准,用于与浏览器进行自动化控制,由W3C维护。通过Watir-Webdriver,我们...

    Global site tag (gtag.js) - Google Analytics