Cypress/VueJS 选择在另一个操作后动态添加的元素
Cypress/VueJS Selecting Element that is dynamically added after another action
我正在测试一项功能,其中会显示一个按钮供用户在执行其他操作后单击。
在执行操作之前,我正在检查按钮是否存在:
cy.get('span')
.contains('Select')
.parent('button')
.should('not.exist');
在操作之后,我试图找到与此相同的按钮,但它失败了。有人知道如何在 Cypress 中执行此操作吗?
这是我的全部代码:
cy.get('span')
.contains('Select')
.parent('button')
.should('exist');
/* eslint-disable */
describe('Workgroup Switch', () => {
beforeEach(() => {
cy.visit('/login');
cy.get('input[id="username"]').type('boss@example.com');
cy.get('input[id="password"]').type('password');
cy.get('button[id="login-button"]').click();
cy.url().should('include', '/offers/workgroup');
});
it('switch workgroup', () => {
cy.get('span')
.contains('Select')
.parent('button')
.should('not.exist');
cy.get('.v-overlay__scrim').click();
cy.get('.text-h6')
.contains('Workgroup #1')
.parent()
.parent()
.click();
cy.contains('Make this my default workgroup');
cy.get('span')
.contains('Select')
.parent('button')
.should('exist');
});
});
您应该使用 contains()
的组合形式来获取正确的元素。
cy.contains('span', 'Select')
.parent('button')
.should('exist');
像这样分两部分做
cy.get('span')
.contains('Select')
Cypress 在页面上找到第一个 span,然后重复检查它的文本是否有“Select”,但它不会重复 cy.get('span')
部分。
我正在测试一项功能,其中会显示一个按钮供用户在执行其他操作后单击。
在执行操作之前,我正在检查按钮是否存在:
cy.get('span')
.contains('Select')
.parent('button')
.should('not.exist');
在操作之后,我试图找到与此相同的按钮,但它失败了。有人知道如何在 Cypress 中执行此操作吗?
这是我的全部代码:
cy.get('span')
.contains('Select')
.parent('button')
.should('exist');
/* eslint-disable */
describe('Workgroup Switch', () => {
beforeEach(() => {
cy.visit('/login');
cy.get('input[id="username"]').type('boss@example.com');
cy.get('input[id="password"]').type('password');
cy.get('button[id="login-button"]').click();
cy.url().should('include', '/offers/workgroup');
});
it('switch workgroup', () => {
cy.get('span')
.contains('Select')
.parent('button')
.should('not.exist');
cy.get('.v-overlay__scrim').click();
cy.get('.text-h6')
.contains('Workgroup #1')
.parent()
.parent()
.click();
cy.contains('Make this my default workgroup');
cy.get('span')
.contains('Select')
.parent('button')
.should('exist');
});
});
您应该使用 contains()
的组合形式来获取正确的元素。
cy.contains('span', 'Select')
.parent('button')
.should('exist');
像这样分两部分做
cy.get('span')
.contains('Select')
Cypress 在页面上找到第一个 span,然后重复检查它的文本是否有“Select”,但它不会重复 cy.get('span')
部分。