无法解决Ruby哈希

时间:2017-01-16 14:45:13

标签: ruby watir

我想在调用函数

时选择与传递的参数相关的单选按钮

以下是text.html页面中的HTML代码:

<td>
     <input name="names" value="a" type="radio">Text1
     <input name="names" value="b" type="radio">Text2
</td>

以下是Ruby脚本:

require 'watir'

browser = Watir::Browser.new(:chrome)

browser.window.maximize

browser.goto('file:///C:/text.html')

def select_names(browser, name)
    select_name_hash = {
        'a' => 'First',
        'b' => 'Second'
    }

    if browser.radio(:name => 'names', :value => "#{select_name_hash[name]}").present?
        browser.radio(:name => 'names', :value => "#{select_name_hash[name]}").set
        message = "Select #{name} - SUCCESS"
    else
        message = "Select #{name} - FAILURE"
    end

    return message
end

p select_names(browser, 'First')

我得到的输出为:

"Select First - FAILURE"

有人可以帮忙吗?我希望输出成功。提前致谢

2 个答案:

答案 0 :(得分:0)

看起来您需要按其值获取哈希键。您可以按照以下方式执行此操作:

Ruby 1.9 以及更高版本:

select_name_hash.key(name)

Ruby 1.8

select_name_hash.index(name)

答案 1 :(得分:0)

如果您的变量name等于First,那么您应该初始化select_name_hash,如:

select_name_hash = {
    'First' => 'a',
    'Second' => 'b' 
}

<强> UPD

适用于您的select_name_hash

> select_name_hash.rassoc('First').first
=> "a" 

> select_name_hash.key('First')
=> "a