waitForText 无法定位文本,但 waitUntil 有效

waitForText is not working to locate text but waitUntil works

我正准备拔头发。不确定我做错了什么,但问题是:

我有一个文本框,我正在为其验证错误消息。 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 与 waitUntil 来跟上我项目中的编码标准。

彼得,请指教。

我不知道,也许这是一个错误。如果您可以提供一种复制方法,那将有助于社区:https://github.com/karatelabs/karate/tree/develop/examples/ui-test

同时看看这是否有效:

waitForText('body', 'There are invalid characters being used')

我不禁注意到您没有在需要时使用 double-quotes。

waitForText("//span[@id='Name-error']", 'There are invalid characters being used')