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

回到顶部