select
选择 <select>
元素中的 <option>
选项。
在 .select()
之后继续链式调用依赖于该主题的命令是不安全的。
语法
.select(value)
.select(values)
.select(value, options)
.select(values, options)
用法
正确用法
cy.get('select').select('user-1') // 选择 'user-1' 选项
错误用法
cy.select('John Adams') // 错误,不能直接链式调用 'cy'
cy.clock().select() // 错误,'clock' 不返回 <select> 元素
参数
value (String, Number)
要选择的 <option>
的 value
、index
或文本内容。
values (Array)
要选择的多个 <option>
的 value
、index
或文本内容的数组。
options (Object)
传入一个选项对象以改变 .select()
的默认行为。
选项 | 默认值 | 描述 |
---|---|---|
force | false | 强制执行操作,禁用等待可操作性 |
log | true | 在命令日志中显示该命令 |
timeout | defaultCommandTimeout | 在超时前等待 .select() 解析的时间 |
生成结果
.select()
返回与原始主题相同的主题。- 在
.select()
之后继续链式调用依赖于该主题的命令是不安全的。
示例
文本内容
选择文本为 apples
的 option
<select>
<option value="456">apples</option>
<option value="457">oranges</option>
<option value="458">bananas</option>
</select>
// 返回 <option value="456">apples</option>
cy.get('select').select('apples').should('have.value', '456')
Value
选择 value 为 "456" 的 option
<select>
<option value="456">apples</option>
<option value="457">oranges</option>
<option value="458">bananas</option>
</select>
// 返回 <option value="456">apples</option>
cy.get('select').select('456').should('have.value', '456')
Index
选择 index 为 0 的 option
<select>
<option value="456">apples</option>
<option value="457">oranges</option>
<option value="458">bananas</option>
</select>
// 返回 <option value="456">apples</option>
cy.get('select').select(0).should('have.value', '456')
选择多个选项
选择文本为 "apples" 和 "bananas" 的选项
<select multiple>
<option value="456">apples</option>
<option value="457">oranges</option>
<option value="458">bananas</option>
</select>
cy.get('select')
.select(['apples', 'bananas'])
.invoke('val')
.should('deep.equal', ['456', '458'])
选择 value 为 "456" 和 "457" 的选项
<select multiple>
<option value="456">apples</option>
<option value="457">oranges</option>
<option value="458">bananas</option>
</select>
cy.get('select')
.select(['456', '457'])
.invoke('val')
.should('deep.equal', ['456', '457'])