Javascript cy.wrap(JQueryObject)。单击()与JQueryObject。单击()
嗨,有人能给我解释一下为什么我不能只使用Javascript cy.wrap(JQueryObject)。单击()与JQueryObject。单击(),javascript,typescript,cypress,typescript2.0,Javascript,Typescript,Cypress,Typescript2.0,嗨,有人能给我解释一下为什么我不能只使用元素。在cy.wrap(元素)行上单击()。单击()?使用cy.wrap有什么好处 cy.get(selector) .scrollIntoView() .each((element) => { if (element.text() === 'click me') { cy.wrap(element).click(); } }); 简单的回答是,它将在cypress日志中显示得很好
元素。在cy.wrap(元素)行上单击()
。单击()
?使用cy.wrap有什么好处
cy.get(selector)
.scrollIntoView()
.each((element) => {
if (element.text() === 'click me') {
cy.wrap(element).click();
}
});
简单的回答是,它将在cypress日志中显示得很好,您将获得用户与该元素交互的信心(与机器交互相反) 我想在这个特定的例子中,您可以将其视为手动调用
onclick
处理程序和让机器人在可交互元素上单击虚拟鼠标之间的区别,后者更接近于人类交互,从而提高了可信度
您可能会发现这很麻烦,但是90%的情况下您甚至不需要使用cy.wrap
,因为您可以直接访问包装的元素
这段代码应该可以完成我想的工作,我也会跳过scrollIntoView()
。如果这是页面上唯一一个带有“click me”的元素,我将只提供文本,而不提供选择器
cy.contains(选择器“单击我”)
.scrollIntoView()
。单击()
元素
在本例中是一个jQuery
对象(或者可能是一组对象),我认为只调用元素。单击()
可能也可以。但是,使用cy.wrap(element).click()
Cypress将检查元素是否可见,并且没有被其他元素覆盖,因此用户无法与其交互。那么,编写cypress测试的首选方法是什么呢?我肯定会选择cy.wrap(element)。click()