当手动测试我的Nuxt应用程序时,点击Switch元素会起作用,并且它会更改我的全局变量.但在Cypress测试中,即使Click事件成功运行,switch 仍保持关闭状态.
我的测试看起来像这样:
it.only('check if creeate button is visible', () => {
const pagesToCheck = [
'/encyclopedia/topics?page=1&language=cs',
'/encyclopedia/questions?page=1&language=cs',
'/encyclopedia/questions?kind=interactive_video&page=1&language=cs',
];
pagesToCheck.forEach((pageUrl) => {
cy.visit(pageUrl);
cy.getData("edit-mode-switch").eq(1).click({ force: true });
cy.getData("create-button").should('be.visible');
});
})
eq(1) is for targeting a particular switch. (There are 3)
getData() is custom command
交换机组件:
<div
class="form-check form-switch form-check-custom form-check-warning form-check-solid"
>
<el-switch
v-model="editModeStore.editMode"
:before-change="changeSwitch"
size="large"
label="Edit mode switch"
aria-label="Edit mode switch"
style="--el-switch-on-color: #ffc700"
data-cy="edit-mode-switch"
/>
<span
class="edit-mode-label"
:class="{ 'is-active': editModeStore.editMode }"
@click="changeSwitch"
>
{{ t('user.edit_mode') }}
</span>
</div>
I tried many ways of implementing the click event:
cy.getData("edit-mode-switch").eq(1).click('top', { force: true });
cy.getData("edit-mode-switch").eq(1).trigger('mousedown'); cy.getData("edit-mode-switch").eq(1).trigger('mouseup');
cy.get('selector-for-your-element').dblclick();
I also made Cypress click on the span next to the switch, but with no effect.
I appreciate any help.