testcafe 如何确定 iframe 已加载?

How does testcafe decide an iframe has loaded?

我目前使用的是最新的软件包 1.18.4,在测试执行期间切换到 iframe 时遇到问题。

每次调用t.switchToIframe(),都会显示如下错误:

Content of the iframe in which the test is currently operating did not load.

即使我可以清楚地看到 iframe 已加载,甚至在出于测试目的登陆页面时等待 60 秒,也会发生这种情况。

下面这段粗略的代码应该可以运行并重现问题:

import { Selector, t } from "testcafe";

fixture(`Quick Test`);

test
 .page(`https://www.terrific.ie/dealer/bradys-of-castleknock/finance/45784/13295`)(
  `Quick Test`,
  async () => {
      await t
       .click(`.submit-outer`)
       .expect(Selector(`.car-summary-box`).visible)
       .ok()
       .expect(Selector(`.cw-finance-plugin.plugin-loaded`).visible)
       .ok()
       .switchToIframe(`.cw-finance-plugin.plugin-loaded`)
       .click(`.cw-checkmark`)
       .debug();
  });

一般来说,切换到iframe有两个步骤。第一步是获取带有 iframe 的选择器,但如果选择器不存在,则会出现另一个错误。下一步是使用原生 getter 获取 contentWindow。错误可能发生在这一步,但我无法用您的 iframe 示例重现这种情况。您能否分享一个完整的测试示例来说明此错误?

还有,你把iframe的内容放在标签之间,但是这样不行。您需要在 iframe 的 src 属性中设置文档的路径。