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 可能会出现问题..
当我 运行 这个测试时,一切似乎都工作正常,直到我尝试单击 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 可能会出现问题..