• watir简单使用


    # watir的安装
    watie的安装请查看 -> Ruby library的安装

    # 使用Watir工具,需要在脚本中加上
    require 'watir'

    # 创建一个IE的实例
    ie = Watir::IE.new
    或者在创建的同时直接转到页面
    ie = Watir::IE.start('http://www.text.com/')
    Watir使用start方法同时创建一个浏览器实例并转到一个页面。
    IE浏览速度
    ie.speed = :fast
    ie.speed = :slow

    # 页面导航
    ie.goto('http://www.text.com/')
    注: ie.goto还可以运行javascript的代码如: ie.goto("javascript: ie.document.write("Hello World");")

    # 取得当前网页的网址
    ie.url

    # 点击超链接
    ie.link(:text , "Pickaxe").click
    ie.link(:href, /http:\/\/pragmaticprogrammer\.com/).click
    ie.link(:name => 'foo', :index => 1).click

    # 超链接的uri
    ie.link(:text , "Pickaxe").href
    ie.link(:index, 1).href
    ie.link(:text => "reply", :index => 2).href

    # 超链接的文本
    ie.link(:href , /http:\/\/pragmaticprogrammer\.com/).text

    对应的HTML代码为:
    <a href='http://pragmaticprogrammer.com/titles/ruby/'>Pickaxe</a>

    # img标签
    ie.image(:name, 'image').src
    ie.image(:index, 2).src

    对应的HTML代码为:
    <img name = img src='http://pragmaticprogrammer.com/titles/ruby/top.gif'>
    <img name = img src='http://pragmaticprogrammer.com/titles/ruby/head.gif'>

    # 设置复选框
    ie.checkbox(:name, "checkme").set
    ie.checkbox(:name, "checkme", "1").set # 使用name和value属性设置复选框

    # 清除复选框
    ie.checkbox(:name, "checkme").clear
    ie.checkbox(:name, "checkme", "1").clear # 使用name和value属性清除复选框

    对应的HTML代码为:
    <input type = "checkbox" name = "checkme" value = "1">

    # 设置单选框
    ie.radio(:name, "clickme").set
    ie.radio(:name=>'clickme', :index=>2).set
    ie.radio(:name, "clickme", "1").set # 使用name和id属性设置单选框

    # 使用name属性清除单选框
    ie.radio(:name, "clickme").clear
    ie.radio(:name, "clickme", "1").clear # 使用name和id属性清除单选框

    对应的HTML代码为:
    <input type = "radio" name = "clickme" id = "1">
    <input type = "radio" name = "clickme" id = "2">

    # 设置下拉框
    ie.select_list(:name, "selectme").select('Python') # 使用text属性和值来设置下拉框
    ie.select_list(:name, "selectme").select_value('2') # 使用value属性和值来设置下拉框

    # 使用name属性和值来清除下拉框
    ie.select_list(:name, "selectme").clearSelection

    对应的HTML代码为:
    <select name = "selectme">
    <option value = 1>Ruby
    <option value = 2>Java
    <option value = 3>Python
    <option value = 4>C
    </select>

    # 文本的框设置
    ie.text_field(:name, "typeinme").set("Watir World")

    # 清空文本输入框
    ie.text_field(:name, "typeinme").clear

    对应的HTML代码为:
    <input type = "text" name = "typeinme">

    # 通过值或name属性点击button
    ie.button(:value, "Click Me").click
    ie.button(:name, "clickme").click

    对应的HTML代码为:
    <input type = "button" name = "clickme" value = "Click Me">

    # 通过值或name属性点击Submit
    ie.button(:value, "Submit").click
    ie.button(:type, "Submit").click
    ie.button(:name, "Submit").click

    对应的HTML代码为:
    <form. action = "submit" name = "submitform" method="post">
    <input type = "submit" value = "Submit">
    </form>

    # 表单中的图片按钮
    ie.button(:name, "doit").click

    对应的HTML代码为:
    <form. action = "submit" name = "doitform" method="post">
    <input type="image" src = "images/doit.gif" name = "doit">
    </form>

    # 没有按钮的表单
    ie.form(:name, "loginform").submit # 通过name,action以及method属性来提交表单
    ie.form(:action, "login").submit
    对应的HTML代码为:
    <form. action = "login" name = "loginform" method="get">
    <input name="username" type="text">
    </form>

    # 框架
    ie.show_frames可以打印出当前页面框架的数量和名称
    Watir允许通过名称属性来访问框架,如ie.frame("menu")
    如果要访问menu框架中的一个超链接,可以
    ie.frame("menu").link(:text, "Click Menu Item").click

    # 嵌套框架
    ie.frame(:name, "frame1").form(:name, 'form1')

    # 新窗口
    一些Web应用会弹出新窗口或打开一个新窗口,可以使用attach方法来访问并控制新窗口。通过标示新窗口的URL或者title来访问。
    ie2 = Watir::IE.attach(:url, 'http://www.text.com/')
    ie3 = Watir::IE.attach(:title, 'Test New Window')
    也可以使用正则表达式
    ie4 = Watir::IE.attach(:title, /Test New/)
    注意:不要把新窗口分配到你的ie变量,最好给新窗口一个不同的名字

    # 访问Table元素:
    t = $ie.table(:id,"data")
    t = Table.new($ie,:id,"data")
    t = $ie.table[1]

    # tr,td元素
    tr = ie.row(:id,"title")
    tr = TableRow.new(ie,:id,"title")

    td = ie.cell(:id,"name")
    td = TableCell.new(ie,:id,"name")

    # Watir中Table,TableBody,TableRow,TableCell这几个类,都提供了一个索引方法"[](index)"来定位其下一层的子元素对象,该方法为实例方法,"index"为传入的参数,索引值从1开始,而非从0开始。
    用法如下:
    以table的第一行,第一个元素为例:
    tr1 = t.[](1)
    td1 = tr1.[](1)
    也可以连续访问:td1 = t.[](1).[](1)
    如果td中还有其他元素,可以通过td的实例方法直接访问,以checkbox为例:
    cb = td1.checkbox(:id,'navigate_id').click

    对于以上所提到的对象,都是从Element继承而来,所以click,enabled?,exists?,fireEvent,flash,focus等方法都直接可以使用。
    如果你的td元素定位准确了,且鼠标响应事件没有错误的话,那么应该能看到点击后的效果。
    建议多查一下Watir的API Reference http://wtr.rubyforge.org/rdoc/

    代码如下:
    t = ie.table(:id,"CoolMenu2menutable")
    td_logout=t.[](1).[](16)

    先找到Table,再索引TR,再索引到TD

    # 运行Ruby时不显示browser方法
    运行Ruby程序文件时在后面加 "-b"
    ex:
    test.rb -b
    也可以做成.bat文件
    ex: test.bat
    ruby.exe test.rb -b

    # 获取隐含对象值
    <INPUT type=hidden value="您的Email" name="field1">
    方法:values = ie.hidden(:name, 'field1').value

    # 获取窗口对象
    方法1: ie2 = Watir::IE.attach(:url,'http://www.google.cn/') #根据URL获取
    方法2: ie3 = Watir::IE.attach(:title,'Google') #根据窗口标题获
    方法3: ie4 = Watir::IE.attach(:title, /google.cn/) #正则表达式匹配获取

  • 相关阅读:
    「Baltic2015」Network
    noip模拟赛 蒜头君的排序
    noip模拟赛 蒜头君的兔子
    codevs2171 棋盘覆盖
    noip模拟赛 蒜头君的坐骑
    noip模拟赛 蒜头君的树
    noip模拟赛 蒜头君打地鼠
    noip模拟赛 密码
    noip模拟赛 轰炸
    noip模拟赛 毁灭
  • 原文地址:https://www.cnblogs.com/zthua/p/2854419.html
Copyright © 2020-2023  润新知