TestCafe .click не запускает событие onClick в iFrame

#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, правильную ширину, высоту и положение.