Я пытаюсь, чтобы кипарис нашел мой фрейм. Я обнаружил проблему с GitHub, в которой обсуждаются обходные пути ограничения кипариса в отношении iframes, и 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();
})
})
А вот мой код 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 сообщает, что не может найти элемент с идентификатором haha
.