しばらくの間、ビルドとは別に自動テストを実行してきましたが、電子メールの検証に関する一連のテストが失敗し続けました。私が見つけた問題は、Selenium が XPath 内のテキストで「@」を検索できないことを説明する javascript エラーがスローされるためです。
このSO Questionに遭遇しました。これは、標準として Selenium の XPath を介してテキスト内で文字を検索できないことをうまく確認しました。
私の質問は、誰かがこれを回避する方法を見つけましたか?
たとえば、次のテキスト フィールドを持つ要素を検索できるようにしたいと考えています。
<h1>"personA@email.com.au.personB@email.com.au - The separator '@' is either in an invalid position or is missing from the address."</h1>
そして、JavaScriptエラーをスローする私の現在のXPath(明らかにシンボルの存在では機能しません)は次のとおりです(ここで、errorTextは上記の文字列です):
"//*[contains(text(), '" + errorText + "')]"
楽しみのために、javascriptエラーが役立つ場合:
[14/01/2013 - 14:35:00.1820111] : InvalidSelectorError: Unable to locate an element with the xpath expression //*[contains(text(), 'personA@email.com.au.personB@email.com.au - The separator '@' is either in an invalid position or is missing from the address.')] because of the following error:
Error: Bad token: @
[編集]
入力テキストを二重引用符で囲む必要があることを示唆するSOの質問を調べましたが、これを行うと上記のjavascriptエラーがスローされます。ここでは@記号が問題であり、それを含むテキストを介して検索する明確な方法が見当たらないという印象を受けています。