cypress - 如何在 cypress 中获取 select<> & option<> 标签的值
问题描述
有什么方法或方法可以获取<select><option>
标签的“价值”吗?
我有一个场景,我需要获取<select><option>
标签的值,并将其存储在一个变量中,因为该值是动态的,在每次执行时都会发生变化。
我不能像这样硬编码该值,因为它每次都在变化:
cy.get(' ').select('b5c12d3-2085-4ed8-bd57-8a93f6ae1e64')
所以我想在获得该值后做这样的事情:
cy.get(' ').select(value)
并且通过使用文本值,它没有选择
cy.get(' ').select('related new)
......它不起作用
解决方案
您可以使用:cy.get('select option[value]').then($el => <logic to store values in Cypress.env>);
标记:
<select>
<option>Select</option>
<option value="b5c12d3-2085-4ed8-bd57-8a93f6ae1e64">Some value</option>
<option value="more-such-dynamic-value">More value</option>
</select>
测试:
cy.get('select option[value]').then($options => {
return new Cypress.Promise((resolve, reject) => {
const values = [];
for (let idx = 0; idx < $options.length; idx++) {
values.push($options[idx].value);
}
if (values) {
resolve(values);
} else {
reject(null); // handle reject;
}
});
}).then((options) => {
Cypress.env('selectValues', options);
});
cy.log(`selectValues: ${Cypress.env('selectValues')}`);
cy.get('select').select('Some value').invoke('val').should('eq', Cypress.env('selectValues')[0]);
Cypress.env('selectValues', undefined); // clear
cy.log(`After reset, selectValues: ${Cypress.env('selectValues')}`);
测试截图
推荐阅读
- saxon - 在 Saxon EE 中使用 XPath 3.1 需要哪些 JAR 文件?
- javascript - 如何在每个表格行上应用突出显示功能?
- blazor - 在 Blazor 组件中显示数据之前检查 null 或空格的最简洁方法是什么?
- python - 使用 Google Colab 在不同的 python 文件中调用函数?
- java - 如何合并霍夫曼和lz77?
- java - 如何使用 Java 中的 Streams 从集合中仅选择某些项目
- javascript - 使用带有按钮的 react-router-dom 链接
- c# - 如何将 CheckBox.InputBindings MouseBinding 绑定到视图模型中的命令,而不是 DataGrid 对象项?
- c++ - 无法使用 FBO 绘制多个元素
- android - 如何在 MaterialDatePicker 上设置文本?