javascript - 似乎无法使用 cypress 在下拉列表中选择一个选项
问题描述
我正在尝试使用柏树从以下站点的“选择您的尺寸”下拉列表中选择“小”:
https://www.giant-bicycles.com/us/tcr-advanced-2-pro-compact-2021
而对于我的生活,我似乎无法得到它。我使用了几种方法并继续使用柏树撞墙。
这就是我到目前为止所拥有的:
/// <reference types="cypress"/>
describe('Giant Website', () => {
beforeEach('Navigate to Giant website', () =>{
cy.NavigateToGiantWebsite()
})
it('check stock', () => {
cy.contains('button', 'I Understand').click()
cy.get('[id="682"]').contains('a', 'TCR Advanced').click()
cy.get('[alt="TCR Advanced 2 Pro Compact Unicorn White"]').click()
cy.get('[title="Select your size"]').click({force: true})
//cy.contains('li', 'Small ').click() this select x-small instead of small
cy.get('[ng-show="lockedCart.length == 0"]').contains('[for="sizes"]').click()
});
})
请帮忙
解决方案
cy.contains('li', 'Small ')
选择 x-small 尺寸的原因是
cy.contains(selector, content)
其中 content 是一个字符串将查找包含指定字符串的任何选项,因此将同时匹配x-small
和small
。它只返回一个元素,第一个是
x-small
.
您可以使用简单的正则表达式代替字符串,并使用插入符号^
将其限制为在开始时匹配。
所以,这行得通
cy.contains('li', /^Small/).click()
请注意,如果您使用 li 的计数(例如.eq(5)
),则如果网站更改选项,您的测试将需要更新。
推荐阅读
- python - 如何注释可以转换为布尔值的参数?
- java - 带有枚举的 CodecConfigurationException
- bash - 一个接一个地运行期望生成的命令
- java - “weblogic.application.ModuleException:java.lang.ClassNotFoundException:org.dom4j.io.STAXEventReader”
- r - 如何查看不是表格形式的输出的所有行
- java - 带有 Java 的 Android 应用程序 - udp 字符串不发送
- angular6 - 想要在单击编辑按钮时获取 productCode 的值
- css - 如何强制一个父菜单项的所有子菜单级别在悬停时处于活动状态(超级菜单)
- excel - 工作簿设置为不可见时 Excel 的奇怪行为
- python - 在 GeoJSON 中访问嵌套的 Python 坐标字典