TestCafe-如何在不通过测试的情况下检查Web元素是否存在?
我正在尝试编写一个脚本,该脚本需要根据CSS选择器找到的特定浏览器对象是否存在来适应其工作流程行为。
我不想使用document.getElementByID方法,因为从技术上讲,这不是CSS选择器,并且我们整个企业都在CSS选择器上进行了标准化,因此在DOM以外的其他任何选择都不会使CSS选择器超出我们的代码审查过程无论如何。
var thing = await things.thingSelector(thingName);if (await t.expect(thing.exists).notOk()) {
await t.click(things.OpenThing(thingName));
} else {
return false;
}
return true;
ThingSelector在哪里:
const thingSelector = name => Selector('p.thing-header-title span')
.withText(name)
.parent('div.thing');
OpenThing在哪里:
const OpenThing = name => thingSelector(name)
.find('a.thing-footer-item')
.withText('Open');
如果对象不存在并且正在检查它是否存在,或者对象是否存在并且正在检查它不存在,以及对象不存在的情况,我就必须能够继续执行并且它不存在,并且对象不存在,我正在检查它是否不存在。
在所有情况下,我仍然需要继续进行工作流程。
我已经尝试了逻辑硬币的两面:
if (!await t.expect(thing.exists).ok())
和
if (await t.expect(thing.exists).notOk())
如果以上方法之一在一种情况下没有失败,则将在另一种情况下失败,而在第一种没有失败的情况下,另一种将失败。我需要可以使我逻辑化的东西,但绝不会使脚本执行失败,并且仍然允许我根据对象是否存在来返回True或False。
在此先感谢您帮助我解决此问题,并帮助我学习和发展Java语言技能!
回答:
您可以通过以下方式检查条件中的async exists
属性if
:
if(await things.thingSelector(thingName).exists) { // do something
}
以上是 TestCafe-如何在不通过测试的情况下检查Web元素是否存在? 的全部内容, 来源链接: utcz.com/qa/397556.html