我遇到了一个问题。谁能帮我吗?
因此,我有两个下拉列表,第二个取决于我在第一个选项中选择的选项。
例如,说:第一个下拉列表具有选项“数字”和“字母”,而第二个下拉列表默认为空。但是,当我在第一个下拉列表中选择选项“字母”时,第二个将填充选项“ 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')
它确实选择了选项字母,我可以在第一个下拉列表中看到选中的选项字母,但是在第二个下拉列表中什么都没有发生。
答案 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')