XPath 计数未转换为 Ruby 数字

XPath count not converting to Ruby number

我第一次尝试在 Rails 上将 XPath 引入我的 Ruby,Cucumber 和 Capybara 设置。我的代码

row_count_on_page = page.find(:xpath, "count(//table[@id='foo']/tbody/tr)")

导致错误

undefined method `map' for 10.0:Float
Did you mean?  tap (NoMethodError)

代码的实际 XPath 部分似乎工作正常,因为 table 的正文中恰好有十行。我不明白代码如何无法将 10.0 转换为 Ruby 10。我做错了什么?

您应该在方法之外进行计数。

row_count_on_page.count

正如您目前正在使用的那样,在对 find 的第二个成员求值后,您将得到如下内容:

row_count_on_page = page.find(:xpath, "10.0")

这不是有效的 xpath。