`
java-admin
  • 浏览: 1381565 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

ruby and watir学习之_Hash 类

 
阅读更多

http://www.cnblogs.com/zhangfei/archive/2010/07/28/1786929.html

 

 

ash类说明

函数名称

说明

示例

 

 

= =

 

判断两个 Hash 是否相等

h 1 = {"a" => 1, "c" => 2}

h 2 = { "a" => 1, "c" => 2, 7 => 35 }

h 1 == h2         » f alse

 

 

[ ]

 

返回指定键值对应的对象

h = { "a" => 100, "b" => 200 }

h [ " a " ]   » 100 h["c"]   » n i l

 

 

 

[ ]=

 

 

向 Hash 添加记录

h = { "a" => 100, "b" => 200 }

h [ " a " ] = 9 h["c"] = 4

h   » {"a"=>9, "b"=>200, "c"=>4}

 

clear

清空哈希表的内容. 返回 self.

h = { "a" => 100, "b" => 200 }

h . clear         » {}

 

 

 

d efault

 

 

返回哈希表的默认值

h = { "a" => 100, "b" => 200 }

h . d efault = "Go fish" h["a"]   » 100

h [ " z " ]   » " G o fish"

 

 

 

d elete

 

 

 

从词典中删除和键值相符的记录

h = { "a" => 100, "b" => 200 } h.delete("a")                    » 100 h.delete("z")                    » n i l h.delete("z") { |el| "#{el} not found" }

» " z not found"

 

 

d elete_if

 

通过过程块来删除特定键值的记录

h = { "a" => 100, "b" => 200 }

h . d elete_if {|key, value| key >= "b" }

» {"a"=>100}

 

 

each

 

Hash 表的迭代操作,对表的每一个词对 进行迭代操作

h = { "a" => 100}

h . each  {|key,  value|  print  key,  "  is

" , v alue,"\n"}               » a is 100

 

each_key

对表的每一个键对进行迭代操作

h = { "a" => 100, "b" => 200 }

h . each_key {|key| print key }        »    ab

 

 

each_value

 

针对 value 进行迭代操作

h = { "a" => 100, "b" => 200 }

h . each_value {|value| print value }

»    100200

empty?

判断哈希表是否为空,空则返回 true

{}.empty?       » t rue

 

 

 

f etch

 

如果能找到键值为 key 的 hash 值,则 返回 Hash 值; 如果找不到,则返回默认值或指定值; 如果默认值和指定值都找不到,抛异常

h = { "a" => 100, "b" => 200 } h.fetch("a")                   » 100 h.fetch("z", "go fish")  » "g o fish" h.fetch("k")

» i n `fetch': key not found (IndexError)

 

 

h as_key?

 

 

 

判断是否存在相符的 key 值

h = { "a" => 100, "b" => 200 }

h . h as_key?("a")   » t rue h.has_key?("z")   » f alse

key

h . key?("z")     » f alse

i n clude?

h .i n clude?("b")    » t rue

 

 

h as_value?

 

 

 

判断是否存在相符的 value 值

h = { "a" => 100, "b" => 200 }

h . h as_value?(100)  » t r u e h.has_value?(999)  » f alse

 

v alue?

h . v alue?(100)  » t rue h.value?(999)  » f alse

 

 

i nd ex

 

返回给定值的键值,未找到返 nil

h = { "a" => 100, "b" => 200 }

h .i nd e x(200)  » " b " h.index(999)  » n i l

 

 

i nd exes

 

返回一系列给定的键值对应值组成的数 组

h = { "a" =>100, "b" =>200, "c" =>300 }

h .i nd e xes("a", "c")         » [ 100,300]

h .i nd e xes("a","z")           » [ 100,nil]

 

i nd i ces

 

h .i nd e xes("a", "c")         » [ 100,300]

h.indexes("a", "z")      » [100,nil]

 

 

 

i n v ert

将元素值和索引互换,返回变换后的哈

希表. 注意: 若原哈希表中若干不同的索引对 应相同的元素值时, 其变换结果将无法 预测.

 

 

 

h = { "n" => 100,"m" => 100,"y" => 300}

h .i n v ert       » {300=>"y",100=>"n"}

 

keys

返回一个包含所有 key 的数组.

h = { "a" => 100, "b" => 200 }

h . keys                 » [ " a", "b"]

 

v alues

返回一个包含所有 vakue 的数组.

h = { "a" => 100,"b" => 200,"c" => 300 }

h . v alues          » [ 100, 200, 300]

l ength

 

返回词典中元素的个数

h = { "d" =>100, "a"=> 200, "v" => 300}

h .l ength          » 3 h. size             » 3

 

size

 

 

 

 

 

rehash

 

 

重新计算索引对应的哈希表值。 当与索引对应的哈希表值发生变化时, 若不使用该方法来重新计算的话,将无 法取出与索引对应的哈希表值。

a = [ "a", "b" ]

c = [ "c", "d" ]

h = { a => 100, c => 300 }

a[0] = "z" h.rehash

» {["z", "b"]=>100, ["c", "d"]=>300}

h [ a]   » 100

 

 

replace

以另外一张 Hash 表的内容来替换当前

Hash 表的内容

h = {"a" =>100, "b" =>200 }

h . replace({ "c" => 300, "d" => 400 })

» {"c"=>300, "d"=>400}

 

 

shift

 

删除一个哈希表元素后 再以[key,value]数组的形式将其返回

h = { 1 => "a", 2 => "b", 3 => "c" }

h . shift   » [ 1, "a"]

h   » {2=>"b", 3=>"c"}

 

 

 

sort

 

对 Hash 进行排序 按键值从小到大排序

h = { "b" => 30, "a" => 20, "c" => 10  } h.sort   » [[ " a " , 20], ["b", 30], ["c", 10]] h.sort {|a,b| a[1]<=>b[1]}

» [[ " c", 10], ["a", 20], ["b", 30]]

 

to_a

把 Hash 表转换为数组

数组按 Hash 表的键值从小到大排序

h = {"c" =>300,"a" =>100,"d" =>400}

»    [[ " a", 100], ["c", 300], ["d", 400]]

 

t o_ s

把 Hash 表转换为字符串

h = { "c" => 300, "a" => 100, "d" => 400}

h .t o_ s          » " a100c300d400"

 

 

 

u p d ate

 

 

用一张 Hash 表去更新另外张 Hash 表

h 1 = { "a" => 100, "b" => 200 } h2 = { "b" => 254, "c" => 300 } h1.update(h2)

» {"a"=>100, "b"=>254, "c"=>300}

分享到:
评论

相关推荐

    test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriv

    标题中的“test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriver”揭示了这个压缩包文件的内容。首先,“test_logger1”可能是一个测试项目或者测试脚本的名称,而“Logger”则指的是Ruby内置的日志...

    ruby and watir 安装指南

    ### Ruby 和 Watir 的安装指南 #### 背景与问题描述 在尝试安装 Watir 时遇到问题,尤其是在服务器 2003 上。主要问题是 Watir 的依赖包 `activesupport` 需要 Ruby 版本 &gt;= 1.8.7,而当前系统上安装的是 Ruby ...

    开放Ruby+watir 自动化测试工具介绍+安装说明

    Ruby和Watir(Web Application Testing in Ruby)是一个强大的自动化测试框架,主要用于Web应用程序的测试。Ruby是一种面向对象的、动态的编程语言,以其简洁、优雅的语法和强大的元编程能力而受到开发者的喜爱。...

    ruby+watir自动论坛发帖

    ruby+watir技术实现的论坛发帖机器人,不完善。

    代替Watir中click_no_wait的方法。

    在Ruby自动化测试领域,Watir(Web Application Testing in Ruby)是一个非常流行的库,它允许开发者直接用Ruby语言来控制浏览器,进行网页元素的操作,如点击、填写表单等。然而,`click_no_wait`方法在某些版本的...

    ruby watir教程

    #### 三、学习Ruby/Watir语法 为了更好地利用Ruby Watir进行自动化测试,了解Ruby和Watir的基本语法是非常重要的。 - **Ruby官方文档**:`http://www.ruby-lang.org/zh_CN/ruby` 提供了官方文档和教程资源。 - **...

    RUBY ON WATIR

    Ruby on Watir 是一个强大的自动化测试框架,它结合了Ruby编程语言、Watir库和Cucumber测试工具,为Web应用程序的测试提供了一种简洁而高效的方法。Ruby是一种面向对象的编程语言,以其清晰的语法和对开发者的友好性...

    ruby+watir 测试框架

    Ruby 和 Watir 是一个强大的自动化测试组合,尤其适用于Web应用程序的测试。Ruby 是一种动态、面向对象的编程语言,以其简洁、优雅的语法和强大的元编程能力而受到开发者喜爱。Watir,全称Web Application Testing ...

    Ruby-Watir在Ruby中Web应用程序测试

    通过学习和应用以上知识点,你将能够熟练使用Ruby-Watir进行Web应用程序的自动化测试,提高测试覆盖率,减少手动测试的工作量,确保产品质量。在实际项目中,不断探索和实践,你将能够更好地掌握这一强大的测试工具...

    ruby+watir安装包,安装步骤

    2.本地安装watir-1.4.1.gem,执行gem install watir-1.4.1.gem -l 3.本地安装rubygems-update-1.3.4.gem,执行 gem install rubygems-update-1.3.4.gem 4.更新rubygems,执行update_rubygems (这一步先忽略,有影响...

    Watir的介绍文档:基于RUBY的web UI自动化测试库

    Watir,全称为“Web Application Testing In Ruby”,是一款基于Ruby语言的开源Web自动化测试框架。它的设计目的是模拟人们在浏览器中的行为,如点击链接、填写表单和按下按钮,并能够检查预期的文本是否出现在页面...

    ruby watir介绍文档

    - **简洁的API**:Watir提供了简洁易懂的API,即使是没有深入学习Ruby语言的测试人员也能快速上手。 - **丰富的元素识别**:支持多种方式定位页面元素,如ID、名称、类名等,方便快捷。 ##### 2.2 强大的功能 - **...

    watir安装包之一 ruby1

    此文件太大,压缩成两个part,此为Part1 ,两个文件下载后放一起解压缩即可。 watir本地安装的安装文件共六部分,按照一~六安装即可,每一部分重要的内容在描述里面说明,如有疑问,可以留言。

    Windows下Ruby+Watir自动化测试的环境搭建及数据读取

    ### Windows 下 Ruby + Watir 自动化测试的环境搭建及数据读取 #### 一、概述 本文将详细介绍如何在 Windows 系统上搭建 Ruby 和 Watir 的自动化测试环境,并介绍如何通过 Ruby 脚本读取不同数据源中的测试数据进行...

    ruby 自动化框架watir

    Ruby 自动化框架Watir(Web Application Testing in Ruby)是一个强大的工具,专为进行Web应用程序的端到端测试而设计。...如果你是Ruby开发者,想要提升测试效率和质量,那么学习和掌握Watir将对你的项目大有裨益。

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

    1. **CommonWatir**:这是Watir的核心部分,提供了一组通用的Ruby类和方法,用于与网页元素进行交互,如链接、按钮、文本框等。它支持多种浏览器,并且具有跨浏览器的兼容性。 2. **FireWatir**:作为Watir的一个...

    watir-1.5.2.gem

    开源自动化测试工具组合:Ruby+Watir安装 安装准备: 1. 工具安装包准备: Ruby官方下载地址:http://www.ruby-lang.org/zh_cn/downloads/,稳定版本Ruby 1.8.6 Watir下载地址:...

Global site tag (gtag.js) - Google Analytics