如何在Cypress中编写自定义命令?
我正试图在Cypress中实现一个如何在Cypress中编写自定义命令?,cypress,Cypress,我正试图在Cypress中实现一个悬停命令,所以我要这样做: Cypress.Commands.add("hover", { prevSubject: "element" }, (subject) => { return subject.trigger("mouseenter"); }); 然后像这样使用它: cy.get(`[test-id="my-test-id"]`).hover(); 但是它
悬停
命令,所以我要这样做:
Cypress.Commands.add("hover", { prevSubject: "element" }, (subject) => {
return subject.trigger("mouseenter");
});
然后像这样使用它:
cy.get(`[test-id="my-test-id"]`).hover();
但是它不起作用:hover
调用似乎对测试的执行没有任何影响
如果我删除自定义命令并将该函数的内容内联,则它可以工作:
cy.get(`[test-id="my-test-id"]`).trigger("mouseenter");
自定义命令有什么问题吗?您是否尝试过先包装主题
cy.wrap(subject).trigger("mouseenter");
你说的“不工作”具体是什么意思?啊,很抱歉,当然:对于“不工作”,我的意思是我看不到使用
cy.get(…).hover()
vs.删除行的任何效果。好像方法调用不在那里。谢谢!包装主题使自定义命令起作用。请注意,这并不是起作用的mouseover
,而是mouseenter
。为什么在这种情况下需要包装?mouseover
是我的打字错误,对不起。至于原因:我对很多东西都不熟悉,但我的印象是传入的对象是不可链接的,或者更确切地说,它不会提供收益cy.wrap
使其为链下游的函数提供收益。