Und*_*ion 3 javascript testing select e2e-testing cypress
我需要在select. 选择是一个国家列表,显示它们的名称,每个选项的值都有两个字母的国家代码。我们将选择最多的国家/地区显示在顶部,同时将它们按字母顺序排列。这意味着浮出水面的项目重复两次。
<select>
<option value="gb">UK</option>
<option value="us">USA</option>
<option value="af">Afganistan</option>
<option value="ai">Aland Islands</option>
...
<option value="us">USA</option>
...
<option value="us">UK</option>
...
</select>
Run Code Online (Sandbox Code Playgroud)
我正在选择这样的值:
cy.getSelect().select('gb')
Run Code Online (Sandbox Code Playgroud)
但是,这会引发错误:
CypressError:重试超时:cy.select() 通过值或文本匹配多个选项:gb
这是有道理的,因为 'UK' 的值是gb,它出现在列表的顶部和列表中按字母顺序排列的位置。
如何告诉赛普拉斯忽略重复值并选择第一个匹配项?
请注意,我不能保证任何国家的索引,而且我还有很多其他选择不同国家的测试。我需要一种方法来告诉 Cypress 选择第一个匹配项。
您可以尝试下拉到 jQuery/JavaScript 以手动设置该字段:
cy.get('select').then($country => {$country.val("gb")})
Run Code Online (Sandbox Code Playgroud)
在$country上面的应该是一个jQuery对象包装您选择的HTML。
请参阅:https : //docs.cypress.io/api/commands/then.html#Syntax