#iframe #automated-tests #e2e-testing #testcafe #clicking
#iframe #автоматизированные тесты #e2e-тестирование #testcafe #нажатие
Вопрос:
Я пытаюсь автоматизировать платежную систему, где кнопка «Оплатить с помощью PayPal» находится внутри iFrame. Я просмотрел страницы поддержки TestCafe и, похоже, не могу решить проблему.
TestCafe считает, что он нажал на кнопку, и поэтому на следующем шаге (введите адрес электронной почты) происходит сбой.
Что я использую:
const payPalFrame = Selector('#paypal-button iframe');
const payPalButton = Selector('[name="paypal"]')
async payWithPaypal () {
await t
.switchToIframe(payPalFrame)
.click(payPalButton)
.switchToMainWindow();
}
Я пытался написать clientфункцию, но все еще относительно новичок в JS / Node и не смог заставить что-либо работать.
Комментарии:
1. Это мой первый вопрос, поэтому я рад получить отзыв о том, как его улучшить
Ответ №1:
Возможно, вы могли бы убедиться, что кнопка доступна таким образом:
await t
.switchToIframe(payPalFrame)
.expect(payPalButton.with({visibilityCheck: true}).exists)
.ok({timeout: 30000})
.hover(payPalButton)
.click(payPalButton)
.switchToMainWindow();
Если это не сработает, вам следует попробовать нажать на родительский контейнер button:
const payPalButton = Selector('[name="paypal"]').parent();
await t
.switchToIframe(payPalFrame)
.expect(payPalButton.with({visibilityCheck: true}).exists)
.ok({timeout: 30000})
.hover(payPalButton)
.click(payPalButton)
.switchToMainWindow();
Комментарии:
1. К сожалению, ни один из них не помог… В режиме отладки я также не могу нажать кнопку вручную… поэтому я не уверен, действительно ли это может быть «ошибкой»…
2. @RobC, в этом случае я предлагаю вам настроить общедоступный репозиторий, где вы можете продемонстрировать эту проблему, а затем открыть проблему в TestCafe
3. При дальнейшем исследовании, похоже, что страница не завершила рендеринг должным образом до попытки нажатия кнопки. Итак, хотя ваше решение не решило мою проблему, оно привело меня к выяснению причины. Я принимаю ваш ответ.
Ответ №2:
В testcafe есть ошибка, из-за которой iframes иногда не загружает свои таблицы стилей, поэтому вы можете захотеть проверить, имеет ли тег, на который нужно щелкнуть в iframe, правильную ширину, высоту и положение.