Bik*_*jan 2 javascript testing e2e-testing cypress
这是我的柏树代码:
cy.get(`${sitestovisit.searchBoxFormID} > form`)
.should('have.attr', 'target')<br>
.invoke('removeAttr', 'target')
Run Code Online (Sandbox Code Playgroud)
sitestovisit.searchBoxFormId包含来自 JSON 的数据且其工作正常,但它显示表单中有一个目标属性,但当我尝试删除它时,它不起作用。
当我将上面的代码替换为:
cy.get('#booking_search > form')
.invoke('removeAttr', 'target')
Run Code Online (Sandbox Code Playgroud)
它工作正常,有什么问题吗?我不能直接使用,因为我需要循环使用它 这是输出
小智 8
失败是因为您.should('have.attr', 'target')在此调用之前 有此断言.invoke('removeAttr', 'target')。
将.should('have.attr', 'target')主题从元素更改为属性,但.invoke('removeAttr', 'target')要求主题必须是元素才能工作。
这会起作用
cy.get(`${sitestovisit.searchBoxFormID} > form`)
.invoke('removeAttr', 'target')
Run Code Online (Sandbox Code Playgroud)
而且..如果您需要在删除目标属性之前查看目标属性是否存在,我会这样做。
cy
.get(`${sitestovisit.searchBoxFormID} > form`)
.should('have.attr', 'target')
cy
.get(`${sitestovisit.searchBoxFormID} > form`)
.invoke('removeAttr', 'target')
Run Code Online (Sandbox Code Playgroud)