Selenium (v 2.3) テストの機能をセットアップして、特定のエラー メッセージの存在をチェックしました。これは、チェックしている要素に頭字語が含まれるまで完全に機能していました。
div
私の関数はページ内のすべてのエラーを取得し、それから期待されるメッセージを検索します。
# el is the error div element
error_el = el.find_element_by_xpath('p[contains(text(), "{0}")]'.format(error_text))
...
self.assertIsNotNone(error_el) # make sure it actually found something
テストからこれを呼び出していますが、頭字語が含まれるself.assertFieldError('My error message')
までは完全に機能します。'My error message'
頭字語が存在する場合、Selenium は私の文字列を段落に一致させません。
これに対する私の現在の解決策は、ページのソースで文字列を確認することですが、文字列が複数回出現する場合、これは理想的ではありません。
頭字語タグを無視するか、テキストまたは頭字語を含むテキストを許可するように xpath を改善することはできますか? 私は常に、text()
メソッドはユーザーが見ているとおりに動作し、自動的に頭字語を無視すると想定していました。
編集
エラーメッセージは、フィールド名を介してDjangoフォームからフィールドラベルを取得するJavascriptを使用してフィールドに添付されます。私が知る限り、これは Selenium とは関係ありませんが。
HTML:
<div class="field">
<div class="error">
<p>My <acronym title="Error">ERR</acronym> message</p>
</div>
<label for="id_myField">My <acronym title="Error">ERR</acronym> message</label>
<input id="id_myField" type="text">
</div>