一段时间以来,我一直在运行构建之外的自动化测试,并且围绕电子邮件验证的一系列测试一直失败。我发现的问题是由于引发的 javascript 错误导致 Selenium 无法在 XPath 中的文本中搜索“@”。
我遇到了这个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 Question ,但是这样做仍然会导致上述 javascript 错误抛出。我仍然认为@符号是这里的问题,并且看不到通过包含它的文本进行搜索的明显方法。