我正在努力得到所有 价值观
在下面 选择标签
为了有一个数组。
这是我的代码:
cy.get('[data-tab-name-prefix="selectedFonds[0]]')
.scrollIntoView()
.should('be.visible')
.find('[name="selectedFonds[0][name]"]')
.find('option')
.invoke('attr', 'value').then($options => {
cy.log($options)
})
<div data-tab-name-prefix="selectedFonds[0]">
<div class= something>
<div class= something else>
<select class=form-control name="selectedFonds[0][name]">
<option value="first value"> First Value </option>
<option value="second value"> Second Value </option>
<option value="third value"> Third Value </option>
<option value="forth value"> Forth Value </option>
</select>
</div>
</div>
</div>
问题是它只返回第一个选项。。。不是所有人。文章源自玩技e族-https://www.playezu.com/179886.html 文章源自玩技e族-https://www.playezu.com/179886.html
未知地区 2F
我的建议是使用data属性定位元素,然后执行 在()内. 然后以select元素为目标并执行 儿童(). 后跟一个 每个() 块迭代每个选项元素。
const values = [‘first value’, ‘second value’, ‘third value’, ‘fourth value’]
cy.get(‘[data-tab-name-prefix="selectedFonds[0]]’)
.scrollIntoView()
.should(‘be.visible’)
.within( ($el) => {
cy.get(‘select’)//based on your HTML you have only one select inside this div
.should(‘be.visible’)
.儿童()
.each( ($el, index) => {
cy.get($el)
.should(‘have.value’, values[index])
})
})
未知地区 1F
.调用(’attr’,value’) 导致问题的原因是,它将选项数组更改为单个值。
移动 属性() 呼叫内部 .然后().
const expectedValues = [‘First value’, ‘Second value’, ‘Third value’, ‘Fourth value’]
cy.get(‘[data-tab-name-prefix="selectedFonds[0]]’)
.scrollIntoView()
.should(‘be.visible’)
.find(‘[name="selectedFonds[0][name]"]’)
.find(‘option’)
.then($options => {
const values = […$options].map(option => option.getAttribute(‘value’).trim())
return values
})
.should(‘deep.eq’, expectedValues)
})