我一直在一段時間內運行自動測試,除此之外,圍繞電子郵件驗證的一系列測試一直在失敗。我發現的問題是由於發生了JavaScript錯誤,導致Selenium無法在XPath中的文本中搜索'@'。通過XPath搜索帶有符號的文本
我遇到了這個SO Question,很好地向我證實,通過Selenium中的XPath,字符不能在文本內搜索。
我的問題是,有沒有人找到解決辦法?
例如,我想能夠找到下面的文本字段中的元素:
<h1>"[email protected]@email.com.au - The separator '@' is either in an invalid position or is missing from the address."</h1>
而且我目前的XPath(顯然不會與符號的存在工作)拋出一個JavaScript錯誤的是(ERRORTEXT只是上面的字符串):
"//*[contains(text(), '" + errorText + "')]"
而只是爲了好玩,如果JavaScript錯誤幫助:
[14/01/2013 - 14:35:00.1820111] : InvalidSelectorError: Unable to locate an element with the xpath expression //*[contains(text(), '[email protected]@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 Question,但這樣做還是引起了JavaScript錯誤上面扔。我仍然覺得@符號是這裏的問題,可以看到沒有明顯的方式通過包括它的文本進行搜索。
我還沒有嘗試刪除@中的引號,我會在我到達另一臺機器時試試這個,謝謝! – Nashibukasan
你的代碼示例對我有很大的幫助,我喜歡XPath在字符串上執行方法在嘗試匹配之前。非常感謝! – Nashibukasan