Cypress 测试在 iframe 挂起

Cypress test hangs at iframe

当我 运行 这个测试时,一切似乎都工作正常,直到我尝试单击 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();
});

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

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

好的,所以我现在发现当我使用 xpath 单击按钮时这有效。为什么我用了ID就不行了?

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

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