【发布时间】:2020-09-30 14:19:52
【问题描述】:
我是 cypress 的新手,我通过各种示例来支持我的应用程序的测试。
我有一个使用 select2 的选择框 - 我可以从下拉框中成功选择项目,但赛普拉斯没有触发我的代码正在运行的选择事件。
如何让 Cypress 选择项目然后触发 select 事件?
这是我的测试代码:
cy.get('select[name=people] > option')
.eq(3)
.then(element => cy.get('select[name=people]').select(element.val(), {force:true}));
这成功选择了下拉列表中的第三项
然后我有这个代码,它根据选择采取行动:
$('#people').on("select2:select", function (e) {
var selectId = $(this).select2('data')[0].id;
var castName = $(this).select2('data')[0].text;
$('option:selected', this).prop('disabled', 'disabled');
addCastTableRow(selectId, castName);
initRemoveCastButton();
$(this).select2();
});
任何想法表示赞赏
谢谢
【问题讨论】:
-
如果您可以将数据属性添加为选择框和选项的一部分,这将非常容易。或者尝试类似 cy.get('#people').click() cy.get( '#people').contains('option').click()
-
另外,你能添加你得到的错误吗?
-
我使用类似 cy.get('#select2-dummy-valuer').click() cy.get('.select2-results').contains('Dummy option').click ()
-
嗨 - 第三个选项成功了,谢谢。我一直在尝试使用 db 种子动态添加测试值,因此永远不知道文本将包含什么,简化并添加了我现在知道存在的虚拟值并且您的方法有效
-
这已在另一个问题stackoverflow.com/a/58261959/518130中得到解答
标签: testing jquery-select2 cypress