waitForText不工作定位文本,但waitUntil工作



我都快抓狂了。不知道我做错了什么,但这是问题:

我有一个文本框,我正在验证一个错误消息。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')

最新更新