Tag: css selectors

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技能!

select带有cheerio属性的元素

什么是最有效的方式来select具有一定属性的所有DOM元素。 <input name="mode"> 如果我不关心属性值,使用普通的javascript我会使用: document.querySelectorAll("[name='mode']")或document.querySelectorAll("[name]") 。