Tag: testcafe

TestCafe – 如何检查Web元素是否存在或不存在未通过测​​试?

我试图编写一个脚本,需要调整它的工作stream行为取决于CSSselect器find一个特定的浏览器对象是否存在或不存在。 我不想使用document.getElementByID方法,因为这在技术上不是CSSselect器,而且我们的整个企业在CSSselect器上是标准化的,所以任何走过DOM然后CSSselect器的东西都不会超过我们的代码审查过程无论如何。 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'); 我需要能够继续执行,如果对象不存在,我检查它是否存在,或者如果对象在那里,我检查它不存在,以及对象不存在的情况下它不存在,对象不存在,我检查它不存在。 在所有情况下,我仍然需要继续工作stream程。 我已经尝试了逻辑硬币的双方: if (!await t.expect(thing.exists).ok()) 和 if (await t.expect(thing.exists).notOk()) 如果其中一个在一个场景中没有失败,那么另一个在另一个场景中将失败,另一个在第一个场景没有失败的情况下将失败。 我需要的东西,会给我的逻辑,但永远不会失败的脚本执行,并仍然允许我返回True或False取决于对象是否存在或不存在。 预先感谢您帮助我解决这个问题,同时也学习和发展我的Javascript技能!

如何编写一个if条件,而不用等待检查select器是否不存在Node.js和TestCafe

对于总共N00b的问题抱歉,但在这里, 我正在编写一些testing自动化,而我自动化的网站有时会在页面上有某些特定的行为,有时则会在页面上有不同的行为。 它通常落入两种模式之一。 把它称为模式A和模式B.事情是模式A和模式B之间有一些共享元素,所以它不是唯一不同的元素。 但是,在任何一种情况下,当模式B处于活动状态时,总是有一个元素在屏幕上,而当模式A处于活动状态时,该元素不在屏幕上。 此外,模式A的工作stream程稍长一些,需要一些额外的控件来进行交互。 让我们调用这个元素“ProfileIdentifier”。 我有一个定位器,我想编写一些逻辑代码,检查这个元素是否不存在,然后与额外的控件进行交互,然后执行较长的工作stream,然后是通用的控件和工作stream模式A和模式B. 总之,这样的事情: import mypage from '../../page-objects/mypage'; //JS file with all the locators for that page. async function FillOutForm(t) { var profileIdentifier = t.getElement(mypage.profileIdentifierLocator); if (not(profileIdentifier.exists)) { // Do the extra workflow } // Do the common workflow } 或者可能是这样的: import mypage from '../../page-objects/mypage'; //JS file with all the […]