Watir 语法(Web Application Testing in Ruby)

Watir-WebDriver:Ruby原生的Web自动化测试框架深度解析与实践指南 Web自动化测试是软件质量保障的关键环节,其核心原理是通过程序模拟用户操作浏览器,实现UI层的功能验证与回归测试。在技术实现上,Selenium WebDriver作为底层标准协议,提供了跨浏览器的驱动能力,而Watir-WebDriver则在此基础上,为Ruby开发者封装了一套更符合语言习惯的优雅API。其技术价值在于显著降低了自动化脚本的编写与维护成本,通过原生Ruby语法实现直观的元素定位与操作,使测试代码更易读、更易写。在应用场景上,它尤其适合Ruby技术栈的团队,用于Web应用的功能测试、端到端测 阅读详情

Watir 语法(Web Application Testing in Ruby)

# 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/)              #正则表达式匹配获取

DFT设计绪论 DFT设计的主要目的是为了将defect-free的芯片交给客户。 产品质量,通常使用Parts Per million(PPM)来衡量。 但是随着IC从SSI到VLSI的发展,在test上花销的时间越来越多,test的quality却很难提高,这使得DFT的engineer不断的发展着DFT的技术。 DFT engineer面对的第一个问题是设计内部的状态的可测试性问题。在... 阅读详情

相关推荐

Stata:手动安装ivreghdfe包的完整指南与常见问题解决

本文提供了Stata中手动安装ivreghdfe包的完整指南,包括准备工作、详细安装步骤及常见问题解决方案。ivreghdfe作为处理高维固定效应模型的强大工具,依赖ftools、reghdfe和ivreg2三个核心组件,手动安装可避免版本冲突问题。文章还分享了进阶使用技巧,如并行计算加速和保存固定效应估计值,助力用户高效完成工具变量回归分析。

weixin_29251131的博客 929

watir语法(Web Application Testing in Ruby)

# 使用Watir工具,需要在脚本中加上 require watir# 创建一个IE的实例 ie = Watir::IE.new # 或者在创建的同时直接转到页面 ie = Watir::IE.start(http://www.text.com/) # Watir使用start方法同时创建一个浏览器实例并转到一个页面。 # IE浏览速度 ie.speed =

守望者 945

基于cat12和SPM12进行VBM&SBM数据分析笔记1——数据预处理

基于cat12数据分析基础教程笔记 今年是小编步入研究生生活的第一年,研究方向待定,但主要以磁共振成像为主,以后会不断地总结这方面的知识,涉及MRI扫描,数据分析基础方法理论,软件操作教程,文献阅读笔记总结等等,用来记录我的研究生三年学习过程。编写尽量简洁明了,通俗易懂,本就是小白,也能体会小白的痛。不过这也要谢谢一个人手动@小白(网名),是他教我要把自己所学的写下来,讲出来才能真正的做到输入和输出,查漏补缺。而cat12软件操作是我面临的第一个数据分析的训练,写的可能也不会非常到位,还望各位专业人士指出改

Sophia2023的博客 4万+

Watir: 网页程序测试工具

Watir 的全称叫Web Application Testing in Ruby.

鲁葱的博克 789

SAP IDOC实战:如何用EDI实现跨公司采购订单自动生成销售订单(附完整配置步骤)

本文详细解析了如何利用SAP IDOC与EDI技术,实现跨公司采购订单自动生成销售订单的完整流程。通过实战案例,从业务蓝图设计、输出条件配置、伙伴参数设定到IDOC消息类型处理,提供了清晰的配置步骤与故障排查指南,帮助企业打通内部业务流,构建高效的自动化闭环。

weixin_29215815的博客 727

CCD 技术介绍(基于innovus引擎CCOpt)

CCD:全称是,并行优化clock和data path。CCOpt:全称是Clock的timing分为两种模式,和。preCTS并没有clock,因此需要建立一个,从clock端口到寄存器CK端的来自sdc中的设置;postCTSupdateIO latency,clock就会自动的转换成propagatedclock,这时就是实际时钟互连线网络的delay。在实际设计中,clock起始于ideal。

m0_61003348的博客 8975

VS Code + KXApp 开发 iOS 报错排查指南,工程、签名、真机、补全、配置

在 VS Code 里用 KXApp 开发 iOS,报错常不在代码而在环境。本文按失败阶段分五类排查:工程没出现 Xcode 视图(查 .xcodeproj 与 xcode-select)、构建失败(No profiles、Team 签名、CocoaPods 用 .xcworkspace)、真机调试失败(信任、开发者模式、设备未准备好)、没补全或 No such module(等索引、清 clangd 冲突)、设置保存不了(装 xcodeproj gem),每类给现象、日志通道和修法。

2501_91590906的博客 171

GEM5架构解析

kkk12344的专栏 200

10分钟训练你的AI歌手:RVC WebUI声音克隆保姆级教程

本文提供了一份详细的RVC WebUI声音克隆保姆级教程,指导用户如何在10分钟内利用Retrieval-based-Voice-Conversion技术训练专属AI歌手。教程涵盖从环境配置、数据准备、模型训练到最终推理应用的全流程,即使是新手也能快速上手,实现高质量的声音克隆与歌曲生成。

weixin_29073241的博客 818

从开发到生产:Power APP 的应用和编程实践

一旦您在开发环境中完成了应用程序的开发、调试和测试,就可以将其部署到生产环境中供用户使用。在 Power APP Studio 中,您可以选择将应用程序发布到 Power APP 网关或将其嵌入到其他应用程序中。使用 Power APP Studio 内置的调试工具,您可以逐步执行应用程序并查看变量的值,以确保逻辑的正确性。在上述代码中,我们通过将两个文本输入框(TextInput1 和 TextInput2)中的文本转换为数字,并将它们相加,将结果存储在 Result 变量中。

2301_79326510的博客 1504

GPT Image 2 出的 UI 图如何转成 HTML 和可编辑 Figma

AI 生成的 UI 图,本身只是起点。用 Codex 或 Claude Code 把它变成 HTML,就有了能演示的页面;用 html.to.design 把 HTML 导回 Figma,就有了能沉淀的设计源文件;用 Codia 直接把图转成 Figma,则适合只要设计稿、追求速度的场景。三条链路互相补充,组合起来就形成了"图、代码、设计稿"之间的闭环。同时也要清楚它的边界:单张位图缺少精确数值,像素级还原目前还做不到稳定;图里的文字和图标需要人工把关。

JEECG官方博客 213

【以太网硬件十九】SGMII到底能不能直接出光模块?

详细解释为什么SGMII可以直接出光模块及其使用限制

highman110的博客 1万+

开源项目推荐:2027 高考志愿填报指北|开源单页 HTML 高报资料工具书

高考志愿填报信息量大、维度多,考生与家长往往面临资料零散、信息不对称、优质内容收费门槛高等问题。《2027 高考志愿填报指北》是雪人老师开源的高报笔记资料汇编,将 683 篇、280.5 万字的原创笔记整合为单页 HTML 电子书,覆盖专业、院校、城市、填报攻略四大板块。支持左侧折叠导航、快速跳转、浏览器原生 A4 打印,可在线阅读也可本地保存使用,采用 CC BY-NC 4.0 协议开源,非商业场景可自由传播改编,是高考志愿填报阶段实用的免费参考工具书。关键词:高考志愿填报;高报资料;开源电子书;

Admans的专栏 286

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

纯静态HTML项目文件打包成war包

纯静态HTML项目文件打包成war包

bjzhang75的博客 206

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

热榜上手|HyperFrames:写HTML出MP4

HeyGen 开源的 TypeScript 视频框架:把 HTML、CSS 动画直接渲染成确定性 MP4,专为 AI agent 批量出片设计,单周涨 5633 star。

mihuyang的博客 254

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

前端三剑客与 HTML 核心标签

前端是项目的门面。这篇文章把 HTML 的骨架作用、常用标签的专属属性、iframe 嵌套、锚点定位、表格与表单逐项拆开,最后落到「一个标签的属性能干什么」这个最实际的问题上。

2401_89953644的博客 239

HTML 转 Word API:HTML 与 URL 输入、DOCX 输出和版式核对

HTML 转 Word API 可把 HTML 正文或公开网页转为可编辑的 DOCX。请求用 type 指定输入类型,用 content 传正文或地址。可选择公开链接或归属当前应用的私有文件引用。

DevOpenClub 专栏 220

OpenCode v2.2 Artifacts 实战:让 Agent 交付可预览 HTML、插件存储与发布治理

OpenCode v2.2.4 新增实验性的 Artifacts 能力,Agent 可以创建、读取、更新、删除并预览 HTML 或静态制品。本文从启用配置、四类核心工具、本地 Provider、插件存储、版本化更新、预览验收到安全与发布治理,给出一套把“代码生成”升级为“可查看、可验收、可追溯交付”的团队实践。

jerry764的博客 408

用VBA调用Python脚本抽取Word文档表格HTML

本文通过使用VBA调用Python脚本抽取Word文档中的表格的等价HTML表结构代码,演示了VBA调用Python脚本以及获取Python节本输出的方法。

yivifu的专栏 176

INP实战:单文件HTML全量重绘拖到226ms

单文件 HTML 工作台实测:一次点击全量重建 7 个模块,1000 条时 JS 侧 226ms 掉出 INP 良好区间。读完能拿到 DOM 节点账、写放大倍数、七源串行 59.7s→8.8s 的并发改造对比与 6 个优化修法。

Dai_sir_man的博客 65

Nginx出向代理实战系列:安全部门只允许开放点对点SNAT、目标用CDN导致IP动态变化怎么办,网络通却返回HTML踩坑复盘

本文复盘了一次复杂的Nginx出向代理实战:面对CDN动态IP、安全策略限制及七层请求不规范三大难题,通过网络层放宽(支持域名解析)、应用层收紧(硬编码location+白名单逻辑)实现安全隔离;针对“通而不畅”问题,补全Host透传、标准Header与HTTPS配置,最终解决CDN返回HTML而非JSON的典型七层瓶颈。核心启示:网络通≠业务通,外网代理必须满足CDN鉴权要求,安全与业务需在约束中寻找最优解。

个人站点:https://www.heimajinpai.cn/ 504

HTML与CSS基础第十课—HTML的 div 和 span 标签

div和span都表示包住一块东西。但是,从使用场景上看,div一般包裹的是一组结构,而span一般包裹的是一个句子里的几个字。在真正的浏览器里,div和spandiv是块级元素,span是行内元素。什么是块级元素、什么是行内元素,这个概念后面会讲。divspan包住什么一组内容,例如一个标题加一段话一句话里的几个字自己占不占一块占一块,从新的一行开始不占一块,留在行内自己表示什么角色不表示不表示class写在开始标签里,用来给这些普通容器起名字。span同样可以加class,它和。

专注大前端领域,持续分享React、Vue、React-Native、Flutter、跨端等领域内容 413

【Chrome 开发者工具】如何使用 Network 下载网页中的 HTML 文件?

在日常学习或开发过程中,我们经常会遇到这样的情况:打开一个网页,里面嵌入了 HTML 格式的课件、幻灯片或者其他在线资源,但网页本身没有提供明显的下载按钮。如果直接使用浏览器的Ctrl + S保存网页,有时只能保存当前页面的 HTML,而无法准确获取嵌入其中的资源。那么,如何找到网页真正加载的 HTML 文件,并将其下载到本地呢?利用 Chrome 浏览器开发者工具(DevTools)中的 Network 面板,定位 HTML 资源并下载。整个过程无需安装额外软件,也不需要编写代码。

ShawnLiaoking的博客 293

静态站点优化实践:HTMLZIP 本地批量压缩工具使用记录

HTMLZIP是一款专为Windows x64设计的本地化HTML压缩工具,支持图形界面与命令行操作,无需安装、绿色便携。它通过解析器智能处理敏感标签(如<pre>、<textarea>),避免乱码与布局错乱;多级编码识别保障中文兼容性,输出同步更新字符集。支持递归批量压缩、原文件备份、自定义压缩策略(注释删除、空白折叠、内联资源压缩等),适用于静态站点优化、模板瘦身与离线归档。适合开发者在不上传数据的前提下高效压缩HTML文件,提升加载性能。

kingsley99的专栏 78

HTML 语义化是什么?有什么好处?附常用语义标签讲解

HTML语义化是指使用具有明确含义的标签(如header、nav、main、footer)来构建页面结构,而非仅用div等无意义容器。其核心价值在于传达内容角色与用途,提升SEO、无障碍访问、代码可读性与维护性,且不影响样式定制。合理使用语义标签,避免滥用,是现代前端开发的重要规范。

2602_95057108的博客 246
上一篇: find的命令批量替换文件中的字符串
下一篇: 软件测试中十大负面测试用例
buutterfly
博客等级 码龄18年 84粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值