#javascript #cypress
#javascript #cypress
Вопрос:
Я пытаюсь протестировать свой собственный плагин WordPress Cypress
.
Я столкнулся со следующей проблемой: если я добавляю товары в корзину с помощью встроенной кнопки «Добавить в корзину» и перехожу в корзину, она пуста.
Если я попробую тот же сценарий вручную с помощью браузера cypress Chrome рядом с тестами, произойдет то же самое.
Код:
it("puts in the cart", () => {
cy.getChatbotIframe()
.find("[data-cy=coupon-code]")
.invoke("text")
.then((text) => {
cy.getChatbotIframe().find("[data-cy=go-to-cart-button]").click();
cy.get("[data-cy=coupon-code]").contains(text);
});
});
Команда getChatbotIframe
:
Cypress.Commands.add("getChatbotIframe", () => {
return cy
.get("[data-cy=alkubot-chat-iframe]", { log: false })
.its("0.contentDocument.body", { log: false })
.should("not.be.empty")
.then((body) => cy.wrap(body, { log: false }));
});
Комментарии:
1. Привет, вы также можете опубликовать пользовательскую команду для
cy.getChatbotIframe()
2. Вы получаете какие-либо ошибки? если да, пожалуйста, опубликуйте скриншот. Также было бы полезно, если бы вы также могли опубликовать скриншот DOM.
3. Я опубликовал скриншот. Я думаю, что DOM не имеет значения, потому что, если я использую встроенную в WordPress кнопку «Добавить в корзину» и вручную перехожу в корзину внутри открытого cypress браузера Chrome, она пуста
4. Предполагая, что вы успешно достигли till
cy.getChatbotIframe().find("[data-cy=go-to-cart-button]").click();
, поэтому вместоcy.get("[data-cy=coupon-code]").contains(text)
этого вы можете использовать что-то вродеlet getText = document.querySelector([data-cy=coupon-code]')[0].innerText; expect(getText).to.equal('expected text')
.5. Проблема не в тексте. Проблема в том, что товар не добавлен в корзину.