第二个下拉列表没有塞满赛普拉斯

时间:2020-04-01 18:55:48

标签: cypress

我遇到了一个问题。谁能帮我吗?

因此,我有两个下拉列表,第二个取决于我在第一个选项中选择的选项。

例如,说:第一个下拉列表具有选项“数字”和“字母”,而第二个下拉列表默认为空。但是,当我在第一个下拉列表中选择选项“字母”时,第二个将填充选项“ A”,“ B”和“ C”。手动,它工作正常,但是当我使用赛普拉斯选择第一个下拉列表时,第二个列表不会被填充。它仍然是空的,所以我不能选择任何东西。

HTML:

<select id="list" class="selectpicker form-control" onchange=""><option value="0">select your preferences</option><option value="2">numbers</option><option value="3">letters</option></select>

赛普拉斯: cy.get('#list')。select('letters')

它确实选择了选项字母,我可以在第一个下拉列表中看到选中的选项字母,但是在第二个下拉列表中什么都没有发生。

3 个答案:

答案 0 :(得分:1)

从表面上看来,解决方案是强制单击,因为从我可以搜集到的信息上,赛普拉斯选择了该选项,但是并没有点击该选项!这是一个错误吗?

因此,这是必需品,最终使其得以运行:

//choose the option on the first drop down
    cy.get('#list').select('letters')
    cy.get('#list').contains('letters').then(option => {
        cy.wrap(option).contains('letters');
        option[0].click();
        cy.get('#list').contains('letters');
      });

//choose the option on the second drop down
    cy.get('#list2').select('A')
    cy.get('#list2').contains('A').then(option => {
        cy.wrap(option).contains('A');
        option[0].click();
        cy.get('#list2').contains('A');
      });

//click on the button to save the options selected
    cy.get('.saveButton').click()

通常情况下,仅应是:

    cy.get('#list').select('letters')
    cy.get('#list2').select('A')
    cy.get('.saveButton').click()

你们认为这是一个错误吗?

答案 1 :(得分:1)

我认为您应该从“未更新”下拉列表中“强制”刷新数据。 尝试“点击()”它。

类似这样的东西:

cy.get('#list')
  .contains('letters')
  .then(option => { // Confirm have correct option 
    cy.wrap(option).contains('letters'); 
    option[0].click(); // After click, mdc-select should hold the text of the 
                      // selected option: cy.get('#list').contains('letters'); 
  });

也许此链接可以为您提供帮助:select dropdownlist item using cypress

答案 2 :(得分:0)

您也可以按值cypress docs

选择
cy.get('#list').select('3')