在赛普拉斯中,select('option-text')
命令仅在完全匹配时才有效。我如何告诉它选择一个包含文本的选项?
答案 0 :(得分:1)
通过别名,您可以使其工作:
cy.get('select')
.find('option')
.contains('YOUR TEXT')
.as('selectOption')
.then( () => {
cy.get('select')
.select(`${this.selectOption.text()}`)
})
答案 1 :(得分:0)
到目前为止,我在api和github问题中都没有找到类似的东西。
因此,我在项目中添加了一个custom command:
// cypress/support/commands.ts
Cypress.Commands.add('selectContaining', {prevSubject: 'element'}, (subject, text, options) => {
return cy.wrap(subject).contains('option', text, options).then(
option => cy.get('select#report-selection').select(option.text().trim())
);
});
// cypress/support/commands_type.ts
declare namespace Cypress {
interface Chainable<Subject = any> {
requestApi(method: HttpMethod, url: string, body?: RequestBody): Chainable<Cypress.Response>;
selectContaining(text: string | string[], options?: Partial<SelectOptions>): Chainable<Subject>;
}
}