我是自动化测试和编码的新手 . 我在我的一个项目中使用testcafe来自动化功能测试 .
在其中一个网页中,有一个字段只接受数字值,如果输入任何字母数字值,则会显示错误消息 .
作为验证的一部分,我需要捕获此错误消息 .
我在这里遇到的问题是我无法确定它在DOM中的哪个元素 .
例如,可以考虑使用gmail用户名,并在我们尝试输入无效用户消息时收到错误消息 .
这就是DOM对于该领域的样子
<div class="flex-content space-100 space-large-reset ">
<label for="uid">Unique ID Number</label>
<input type="password" id="uid" maxlength="9" value="123js" class="abyss-textinput abyss-form-invalid">
<div class="abyss-error-message">Please enter a valid Unique ID Number.</div></div>
值=“123js”是我输入的错误值,其中生成的错误消息在下一行中提到 .
提前致谢 .
3 回答
首先,我承认我对testcafe没有权威,只是学习自己 .
这就是说我的断言工作如下:
await t.expect(Selector('h2').withText('Some text').exists).ok();
在你的情况下,如果你没有id / class可以用来缩小搜索范围,那么它可能效率很低(你的app中可能有很多div / span) . 你能提供一些关于用于显示错误的dom的信息吗?
正如@Iain_b所说,您可以使用
Selector
和ok()
断言来检查错误消息的存在 . 您可以使用Adjacent sibling combinator选择错误的<div>
标记 . 但是,在验证失败后,元素可以插入到DOM树中,或者在页面加载后就可以插入,并且在验证失败后才会显示 .所以对于第一种情况,你应该使用类似的东西:
而对于第二个:
谢谢你的帮助..
我能够使用下面提到的条件找到元素