css - 在 Ruby 中返回多个值,用于调用函数

标签 css ruby xpath capybara incompatibility

是否可以从一个函数返回多个值?

我想将返回值传递给另一个函数,我想知道是否可以避免将数组分解为多个值

我的问题? 我正在为我的元素升级 Capybara,我意识到,感谢 CSS 'contains' selector & upgrade of Capybara , 下面的语句将不再有效

has_selector?(:css, "#rightCol:contains(\"#{page_name}\")")

我想让它以最小的努力工作(有很多这样的情况),所以我想到了使用 Nokogiri 将 css 转换为 xpath。本来想这样写,上面的功能就可以变成

has_selector? xpath(:css, "#rightCol:contains(\"#{page_name}\")")

但由于 xpath 必须返回一个数组,所以我需要实际编写这个

has_selector?(*xpath(:css, "#rightCol:contains(\"#{page_name}\")"))

有没有办法得到以前的行为?

为了简洁起见,现在可以假定 xpath 函数如下所示。

def xpath(*a)
  [1, 2]
end

最佳答案

你不能让一个方法返回多个值。为了做你想做的事,你必须改变 has_selector?,也许是这样的:

alias old_has_selector? :has_selector?
def has_selector? arg
  case arg
  when Array then old_has_selector?(*arg)
  else old_has_selector?(arg)
  end
end

关于css - 在 Ruby 中返回多个值,用于调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21695912/

相关文章:

php - 在 Ruby、Python 或 PHP 中,是否有一个插入到 Array 对象中间需要 O(1) 时间的操作?

java - 如何打印 org.jdom.Document 对象中的整个标签结构?

html - 使用 XPath 获取 HTML 元素的文本内容?

html - 根据 JSON 文件数据更改跨度类标题

html - Css - 带有卷轴的垂直堆栈容器

html - 如何将一个 div 保持在另一个作为其父级的 div 旁边

ruby - 使用 Ruby,如何只打印 MongoDB 查询结果的值

ruby - Ubuntu 上 Ruby 应用程序的最佳位置是什么?

python - 使用 xpath 从 text() 中删除某些内容的方法是什么?

javascript - 计算器 Javascript 中的运算符无法正常工作