【问题标题】:Cypress test hangs at iframe赛普拉斯测试挂在 iframe
【发布时间】:2021-11-06 00:42:03
【问题描述】:

当我运行此测试时,一切似乎都正常,直到我尝试单击 iframe 中的按钮。我从下拉列表中选择没有问题,但是当我到达要单击按钮的最后一步时,加载 iframe 后测试挂起。 另外,有没有更好的方法让我加载 iframe,这样我就不必每次都得到它? 这是我的命令:

require("cypress-xpath");

Cypress.Commands.add("old_report_export", function () {
  cy.get('[id="isc_1A"]').type(Cypress.env("name"));
  cy.get('[id="isc_1E"]').type(Cypress.env("password"));
  cy.get('[id="isc_1Z"]').realClick();
  cy.frameLoaded('[id="isc_3N"]');
  cy.iframe('[id="isc_3N"]').contains("RETAINED").should("be.visible");

  //Navigate to dashboard
  cy.get('[name="isc_2Xicon"]').click();

  cy.get("#isc_3Qtable > tbody > tr:nth-child(1) > td.menuTitleField > div").click();
  cy.get("#isc_3Xtable > tbody > tr:nth-child(6) > td.menuTitleField").click();

  cy.wait(10000);


 cy.iframe('[id="isc_4H"]')
 .find('[id="report_filter_dealer"]').select(this.testdata.dealer);
 cy.iframe('[id="isc_4H"]')
 .find('[id="report_filter_brand"]').select("Ford Thailand");
 cy.iframe('[id="isc_4H"]')
 .find('[id="report_filter_from_date"]').select("June 2023");
  cy.iframe('[id="isc_4H"]')
 .find('[id="load_page"]').select("All Pages - Report");

 cy.iframe('[id="isc_4H]').find('[id="report-run-btn"]').realClick();
});

这是我的测试运行器。它一直挂在那里直到 cypress 超时

我尝试使用 'get' 而不是 find,我尝试使用 'click()' 而不是 'realClick' 以及 'click({force: true})' 都没有成功

【问题讨论】:

  • 你可以试试这个 - cy.iframe('[id="isc_4H]').find('[id="report-run-btn"]').then(($ele) => {$ele.click()})
  • 同样的结果,测试只是挂在那里@AlapanDas

标签: testing automation cypress


【解决方案1】:

好的,所以我现在发现当我使用 xpath 来单击按钮时,它可以工作。为什么我使用ID时它不起作用?

cy.iframe('[id="isc_4H"]').xpath('//*[@id="report-run-btn"]').realClick();

这似乎工作正常,但我知道使用 xpath 可能会出现问题..

【讨论】:

    猜你喜欢
    • 2019-12-27
    • 2023-02-14
    • 2021-10-20
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    相关资源
    最近更新 更多