2017-01-25 141 views
-1

我有这样一个哈希:检索哈希值在哈希

$login_form = { 
    $username => {web_element_type: :id, web_element: 'uname'}, 
    $password => {web_element_type: :id, web_element: 'pass'} 
} 

我如何可以检索用最简单的方式$密码的网页元素类型和网络元素?

+2

我建议你去阅读一些关于ruby语法的介绍。 Ruby与PHP不同。人们不能简单地期望一种语言的语法将被应用于任何地方。 – mudasobwa

回答

1

全局变量?

您确定需要global variables吗?

现在,散列中的键不是字符串,符号或整数,而是由变量$username$password引用的对象。这些变量是全局变量,可以从代码中的任何地方访问。对于名为password的变量,这似乎不是个好主意。

如果这些变量都没有初始化,他们都是nil,所以你login_form居然是:

{nil=>{:web_element_type=>:id, :web_element=>"pass"}} 

$username的价值已被$password覆盖。

如果您确信login_form应该是一个全局变量:

$login_form = { 
    username: {web_element_type: :id, web_element: 'uname'}, 
    password: {web_element_type: :id, web_element: 'pass'} 
} 

p $login_form[:password].values_at(:web_element_type, :web_element) 
#=> [:id, "pass"] 
type, element = $login_form[:password].values_at(:web_element_type, :web_element) 
p type 
#=> :id 
p element 
#=> "pass" 

如果没有,你可以使用@login_form或只是login_form

如果您仍然感到困惑,可以查看this

+0

我试过了,但没有解决。例如:如果我检索$ username的值,它甚至会检索到$ password的值。 – buurkeey

+0

查看关于全局变量的更新。 –

+0

“您需要先获取'$ password'的值,这是一个哈希值。” - 这是错误的,请删除。 – mudasobwa

1

该解决方案可以帮助您,并准备Hash

这样定义方式

$login_form = { 
    :username => {web_element_type: :id, web_element: 'uname'}, 
    :password => {web_element_type: :id, web_element: 'pass'} 
} 

可以检索password像这样

$login_form[:password] 

哈希如果您有任何问题,请与我知道。

+0

我有一个问题:当你在半小时前发布完全相同的内容时,你为什么要发布这个答案? –