代码之家  ›  专栏  ›  技术社区  ›  Chaim Friedman

找不到带柏树的iframe

  •  0
  • Chaim Friedman  · 技术社区  · 7 年前

    this 这就是我所采用的解决方案。

    Cypress.Commands.add('iframe', { prevSubject: 'element' }, $iframe => {
        return new Cypress.Promise(resolve => {
            $iframe.on('load', () => {
                resolve($iframe.contents().find('body'));
            });
        });
    });
    

    这里是我实际使用这个命令的地方。

    context("Basic simple test", () => {
        it("can visit our app", () => {
            cy.visit("http://localhost:3000");
            cy.get('#haha').iframe();
        })
    })
    

    <StyledFrame
       sandbox="allow-forms allow-scripts allow-same-origin allow-modals allow-popups allow-presentation"
       title="sandbox"
       id="hahah"
       srcDoc={this.state.isLoading ? loader : this.state.bundle}
     />
    

    然而,Cypress告诉我它找不到id为的元素 haha .

    1 回复  |  直到 7 年前
        1
  •  1
  •   Tadwork    7 年前

    这可能只是因为您正在寻找的id是#haha,而iframe的id是hahah(带有一个额外的h)。虽然不能保证您不会意外拼错id,但我建议您使用更具描述性的名称,这样就不太可能。