我都快抓狂了。不知道我做错了什么,但这是问题:
我有一个文本框,我正在验证一个错误消息。html看起来像这样:
<span class="text-field-error" data-valmsg-for="Name" data-valmsg-replace="true"><span id="Name-error" class="">There are invalid characters being used.</span></span>
我用来定位错误消息的xpath看起来像这样:
//span[@id='Name-error']
我正在使用以下命令来验证错误消息:
driver.waitForText('//span[@id='Name-error']','There are invalid characters being used.')
验证失败。
但是,当我尝试下面的命令时,它工作得很好。
driver.waitUntil('//span[@id='Name-error']',"_.innerText.includes('There are invalid characters being used.')")
我已经验证了在第一个实例中没有隐藏的空白。我必须使用waitForText vs waitUntil来跟上我项目中的编码标准。
请告诉我,彼得。
我不知道,也许这是一个bug。如果你能提供一种复制的方法,这将有助于社区:https://github.com/karatelabs/karate/tree/develop/examples/ui-test
同时看看这是否有效:
waitForText('body', 'There are invalid characters being used')
我注意到你在必要的时候没有使用双引号。
waitForText("//span[@id='Name-error']", 'There are invalid characters being used')