【问题标题】:cypress and select2 not triggering on selectcypress 和 select2 未在选择时触发
【发布时间】: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


【解决方案1】:

对我有用的东西:

cy.get('#select2-dummy-valuer').click() 
cy.get('.select2-results').contains('foo').click() 

【讨论】:

    猜你喜欢
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多