如何使用cypress/javascript从select调用所有选项值?

Object
Object
Object
订阅者
265
文章
0
评论
测试交流2167字数 156阅读0分31秒阅读模式
摘要为了得到一个数组,我试图获取select标记下的所有值。 这是我的代码: cy.get(“[数据选项卡名称前缀=”selectedFonds[0]]”) (叹气)Scrolling...

我正在努力得到所有 价值观 在下面 选择标签 为了有一个数组。
这是我的代码:

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

 
评论  2  访客  2
    • Black Cat Coding
      Black Cat Coding 9

      我的建议是使用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])
      })
      })

      • TesterDick
        TesterDick 9

        .调用(’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)
        })

      匿名

      发表评论

      匿名网友
      确定

      拖动滑块以完成验证