【问题标题】:Retrieve values in hash in hash [closed]在哈希中检索哈希值[关闭]
【发布时间】:2017-06-10 16:01:05
【问题描述】:

我有一个这样的哈希:

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

如何用最简单的方法检索$password的网页元素类型和网页元素?

【问题讨论】:

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

标签: ruby hash hashmap


【解决方案1】:

此解决方案可以帮助您并准备好Hash

这样定义哈希

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

你可以像这样检索password

$login_form[:password] 

如果您有任何问题,请告诉我。

【讨论】:

  • 我有一个问题:为什么在半小时前发布完全相同的内容时发布这个答案?
【解决方案2】:

全局变量?

你确定需要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

【讨论】:

  • 我试过了,但没有解决。例如:如果我检索 $username 的值,它甚至会检索到 $password 的值。
  • 查看关于全局变量的更新。
  • “你需要先获取$password的值,这是一个哈希值。`——这是错误的,请删除。
  • 这只是 Web 元素的集合,我需要它们可以访问。我试过你的建议,但没有奏效:(
  • @mudasobwa:我不认为这是错误的:$password 在这种情况下是一个(奇怪的)键,它在 $login_form 哈希中有一个关联的值。
猜你喜欢
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 2019-12-20
  • 2016-06-27
  • 2013-01-27
  • 1970-01-01
  • 2014-04-12
  • 2010-10-20
相关资源
最近更新 更多