2012-01-03 5 views
0

ルビーセレンのテストケースを実行し、次のコードは、エラーメッセージを返すときにエラーとして「失敗したアサーション、与えられていないメッセージを。」:「アサーションに失敗しました。メッセージはありません。」私はテストを書くためにセレンwebdriverをを使用してい

product_name_error_message = @driver.find_element(:tag_name => "span", :class => "error").text 
assert product_name_error_message == "Product Name must be greater than 3 and less than 255 characters!" 

申し訳ありませんが、私はよRubyの初心者で、Web上でこのエラーメッセージの解決策を見つけることができませんでした。私はブラウザで確認しましたが、このテキストはページに表示され、適切なスパンタグとクラスで表示されます。セレンのwebdriverがこの要素を見つけることができず、この決定的なエラーがスローされます。助けて?

答えて

1

最初のコード行を実行した後に返される値を表示してみてください。

ので

product_name_error_message = @driver.find_element(:tag_name => "span", :class => "error").text 
puts product_name_error_message 
assert product_name_error_message == "Product Name must be greater than 3 and less than 255 characters!" 

私は、変数がとにかくその値を保持していないことを数えます。

また、あなたのクラブでし一行内のすべて -

verify { assert(@driver.find_element(:tag_name => "span", :class => "error").text.include?(Product Name must be greater than 3 and less than 255 characters!"),"The text is present")} 
+0

しかし、Linuxで同じコードを実行すると、すべて正常に動作します。これはWindowsの問題ですか?私は友人に自分のWindowsで同じコードを試してもらうように頼んだが、同じエラーが出た。 Linuxもうまく動作します。助言がありますか? –

1

ウェブページからのUnicode値を返しますwebdriverを。通常の文字列をUnicodeと比較すると、コード内のアサーションが失敗する理由があります。

もう1つの推測は、要素のテキスト値の末尾の空白です。

関連する問題