2011-08-03 29 views

答えて

2

テキストアサーションがwebdriverをの一部ではありませんが、あなたが行うことができます:

assert driver.find_element(:tag_name, "body").text.include?(str) 
+0

main:Object(NoMethodError)のための 'assert ' – Jack

+0

これは、Assertメソッドを含むTestUnitやMiniTestなどの標準的なテストフレームワークを使用していることを前提としています。これは、Rubyでの実際のテストのためのかなりの要件です。 – bbbco

0

私はそれは本当に、包括的なアサーション "ライブラリ" である

https://github.com/rspec/rspec-expectations

RSpecの-期待をお勧めします。あなたはマッチャー次使用することができ、この場合には

(actual_text).TO EQ(expected_text)

1

セレンwebdriverをあなたが必要とする、作り付けのアサーションライブラリが付属していません期待あなたにアサーションのニーズに応えるための追加の1つを持っている。

ルビの言語になると、rspecを使うのが一番良いでしょう。

はどのようにしていることを使用します:
1)あなたのGemfileにそれを置くのはRSpecをインストールし、バンドルインストールを行う
2)
3)はRSpecの-期待
expect(actual-text).to include(expected-text)

を使用し、あなたの枠組みの中で 'RSpecの' を必要とここで

さらにあなたはユーティリティで、この方法def assert_text_presentを定義することができ、完全な単一のスクリプトの例

require 'selenium-webdriver' 
require 'rspec' 
include RSpec::Matchers 

def assert_text_present(expected_text) 
    expect(driver.find_element(:tag_name=>'body').text.include(expected_text)).to be true 
end 

driver = Selenium::WebDriver.for :chrome 
driver.get("https://rubygems.org/gems/testnow") 
assert_text_present("Kaushal") 

ですまたはフレームワークのヘルパーファイルを開き、必要なときに繰り返し使用します。

注:フレームワークでは、この方法を置く場合、あなたはインクルードは、直接(expect(driver.find_element(:tag_name=>'body').text).to include(expected_text)

はそれが役に立てば幸いマッチャーを含んで使用することができます!