如何使用Cypress获取单选框(radio)输入框的value属性值?
获取Cypress中单选框的value属性值
Cypress没有内置的getValue()方法,而且它是异步运行的,不能直接同步赋值变量,你可以通过以下几种方式获取单选框的value属性:
方式1:用.invoke('attr', 'value')配合.then()
这是最常用的方式,通过invoke调用DOM元素的attr方法获取属性:
cy.getAllByRole("radio").first().invoke('attr', 'value').then(radioValue => { console.log(radioValue); // 输出"male" // 在这里可以使用radioValue执行后续逻辑 });
方式2:用.prop('value')获取
对于input元素,也可以通过prop()方法直接获取value属性,效果和上面一致:
cy.getAllByRole("radio").first().prop('value').then(radioValue => { console.log(radioValue); });
注意点
- 不要尝试直接写
const radioValue = cy.getAllByRole("radio").first().invoke('attr', 'value'),因为Cypress命令返回的是链式操作对象,不是实际的属性值,必须在.then()回调里才能拿到真实的value。 - 如果需要在多个测试步骤中复用这个值,可以把它存为Cypress别名:
// 存储别名 cy.getAllByRole("radio").first().invoke('attr', 'value').as('radioValue'); // 后续使用别名 cy.get('@radioValue').then(radioValue => { // 这里使用radioValue做操作 });
内容的提问来源于stack exchange,提问作者Rahul Yadav
相关产品推荐
相关产品推荐

