【问题标题】:cypress error - cy.select() failed because this element is currently disabledcypress 错误 - cy.select() 失败,因为此元素当前已禁用
【发布时间】:2019-10-29 00:33:39
【问题描述】:

我正在使用 Cypress.io 测试平台和 Chrome 浏览器/最新版本。

我有 3 个选择下拉菜单。第一个默认启用,所以我可以选择它没问题;第二个和第三个被禁用。手动进行选择并选择第一个下拉列表时,第二下拉目启用,然后选择第2个下拉下拉目时,第3个启用。我可以使用cy.get 单独称呼每个人,使用他们的名字,或者他们的索引 0,1 或 2;所以我将在这个问题中使用每个索引。

现在,当我使用 Cypress 以编程方式选择第一个下拉菜单时:

cy.get('select').eq(0).select('Nursing', {force: true})

...第二个下拉菜单保持禁用状态。我在选择第一个下拉列表后添加了一个cy.wait(2000) [2 秒],有足够的时间可以选择,然后我尝试像这样选择第二个下拉列表:cy.get('select').eq(1).select('US - Alaska', {force: true}),我收到此错误:

CypressError: Timed out retrying: cy.select() failed because this element is currently disabled: <select id="course-finder-location-select" name="course_finder_location" data-select2-id="course-finder-location-select" disabled="" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true"></select>,这是第二个选择。

如您所见,我通过eq(1) 使用了它的索引,它正确地将其识别为第二个选择。

我试图弄清楚如何使用赛普拉斯测试命令启用第二个下拉菜单。我什至包含了一个不会导致错误的 jQuery CDN;但是当我尝试添加一个在控制台中工作的 jQuery 命令时[它启用了第二个选择]:

jQuery("#course-finder-location-select").prop( "disabled", false ),

我的赛普拉斯测试只是崩溃而没有错误。它似乎不喜欢 jQuery 命令,甚至不喜欢 JavaScript - 我也试过这个:

document.getElementById("course-finder-location-select").disabled = false

[虽然我可以让它做一个window.alert("!")]。

任何想法如何获得第二选择以启用赛普拉斯?我根本无法更改 HTML 文件。

提前感谢您的宝贵时间!如果您对我如何改写此内容有任何建议,请告诉我。我还没有为 Cypress 设置沙盒。

【问题讨论】:

    标签: javascript jquery cypress


    【解决方案1】:

    将此用于第二个下拉菜单:

    cy.get('select').eq(1).should('contains','US - Alaska')
    

    【讨论】:

      猜你喜欢
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      相关资源
      最近更新 更多