1

これで、キュウリ/カピバラ/セレンがGoogleアプリスクリプトにヒットしました。これは素晴らしいことですが、何らかの理由で、ページの本文のテキストを期待どおりにチェックできないようです。デバッガーでページ オブジェクトを取得できます。ブラウザーで期待されるテキストを取得できます。HTMLを直接スキャンすると、テキストが2回表示されますが、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?では、パラメーターは 1 つだけcontentです。

typeのパラメータhas_text?(可能な値:all:visible) は、現在ベータ版のバージョン 2.1 で登場しました。

ただし、Capybara 2.1.0.beta1 は安定しており、既知の回帰バグはありません。現在、組み込みの Selenium および Racktest ドライバーでのみサポートされています。Capybara-Webkit の利用可能な gem バージョンを書いている時点では、Poltergeist と Terminus は Capybara 2.1 をサポートしていません。

私は 2.1.0.beta1 を使用しているので、組み込みのセレンまたはラックテスト ドライバーを使用する場合は、2.1.0.beta1 を使用することをお勧めします。

于 2013-03-28T20:18:51.610 に答える