2017-01-25 186 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

我有一個問題:當你在半小時前發佈完全相同的內容時,你爲什麼要發佈這個答案? –