1

所以现在我让黄瓜/水豚/硒击中了一个谷歌应用程序脚本,这很棒,但由于某种原因,我似乎无法以我期望的方式检查页面正文中的文本。在调试器中,我可以抓取页面对象,我可以在浏览器中获得预期的文本。扫描html直接显示出现两次的文本,然而page.has_text?出现错误:

(rdb:1) p page.html.scan(/Introduction Video/)
["Introduction Video", "Introduction Video"]
(rdb:1) p page.has_text? 'Introduction Video'
false

备用扫描可提供有关周围文本的更多信息:

(rdb:1) p page.html.scan(/.{10}Introduction Video.{10}/)
["" Introduction Video\\u003C\\/a&", "lank\\\">Introduction Video\\u003C\\/a&"]

这让我想知道这是否是一个编码问题。我想看看has_text到底是什么?方法确实如此,所以我查看了文档:

http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Matchers#has_text%3F-instance_method

但我无法接受附加参数:

(rdb:1) p page.has_text? :all, "Introduction Video"
ArgumentError Exception: wrong number of arguments (2 for 1)

这让我想知道我正在运行的代码是否与文档中的代码相同——这让我回到了我通常的 Ruby 问题,即不确定去哪里找到我所依赖的开源代码......

无论如何,我使用的所有代码都在这里:

https://github.com/tansaku/GoogleAppScriptBDD

非常感谢任何帮助。

4

1 回答 1

2

在 Capybara 2.0has_text?中只有一个参数 - content

typehas_text?(带有可能值:all和)的参数:visible出现在当前处于测试阶段的 2.1 版中。

但是,Capybara 2.1.0.beta1 是稳定的,没有任何已知的回归错误。目前它仅由内置的 Selenium 和 Racktest 驱动程序支持。在编写 Capybara-Webkit 的可用 gem 版本时,Poltergeist 和 Terminus 不支持 Capybara 2.1。

我使用 2.1.0.beta1,所以如果你使用内置的 selenium 或 racktest 驱动程序,我可以推荐你使用它。

于 2013-03-28T20:18:51.610 回答