2012-03-30 14 views
0

私はSeleniumでPythonスクリプトを作成しています。ページが読み込まれたときにテキストボックスのデフォルトテキストをチェックする特定のテストを実行したい。以下は私のコードである.......ここAssertionError - Selenium/Python

try: 
        self.assertEqual("Search by template name or category..", sel.get_text("//table[@id='pluginToolbarButton_forms']/tbody/tr[2]/td[2]/em")) 
        logging.info('  PASS: text box text is correct') 
       except Exception: 
        logging.exception('  FAIL: text box text is incorrect') 

は私の誤りである......

  self.assertEqual("Search by template name or category..", sel.get_text("//table[@id='pluginToolbarButton_forms']/tbody/tr[2]/td[2]/em")) 
    File "C:\Python27\lib\unittest\case.py", line 509, in assertEqual 
    assertion_func(first, second, msg=msg) 
    File "C:\Python27\lib\unittest\case.py", line 502, in _baseAssertEqual 
    raise self.failureException(msg) 
AssertionError: 'Search by template name or category..' != u'Submitter Requests' 

私が間違っている機能を使用していますか?あなたは(それがあなたの最初のコード例ではself.assertEqual(...)をだ)しようとしたアサーションが失敗したことを

答えて

0

あなたAssertionError状態:

AssertionError: 'Search by template name or category..' != u'Submitter Requests' 

このアサーションは、文字列'Search by template name or category'が...正しいれ、'Submitter Requests'異なることを説明します文字列は、実際にはです。

私はself.assertEqualに2番目のパラメータをチェックし、正しい機能を選択していることを確認します。

0

正しい機能を使用しているようですが、正しい方法でテストを実行していない可能性があります。

0

問題は、あなたが比較する正しい要素を選択していないように見えます。あなたは、基本的に一致するプログラム語っている「テンプレート名やカテゴリで検索を..」にあるものの内容に等しい:

//table[@id='pluginToolbarButton_forms']/tbody/tr[2]/td[2]/em 

どうやら、内容は「提出要求」している、すなわちない何期待しているので、テストは失敗するはずです。そのXPathクエリで正しい要素を選択していない可能性があります。たぶんCSSクエリが最適かもしれません。 Selenium documentationの要素セレクタについて読むことができます。

落とし穴にも注意してください.Seleniumから返されるテキストはUnicode objectで、文字列と比較しています。これは、特殊文字に対して期待どおりに機能しない可能性があります。

関連する問題