невозможно ввести учетные данные в поле ввода в iframe (т. е. в кросс-домене) для браузера Safari через Java Selen - PullRequest
1 голос
/ 15 апреля 2019

В рамках нашего тестового сценария есть окно 3Dsecure, в котором мне нужно ввести имя пользователя, пароль и нажать кнопку отправки.

Это прекрасно работает для браузера Chrome с веб-драйвером java и selenium.

driver.switchTo().frame(By.id("ThreeDSecureIframe");
Then I type the user credentials and click submit button

Однако при запуске теста в safari он не распознает поля ввода имени пользователя и пароля в iframe. Есть ли обходной путь с javascript и т. Д.?

И родительский элемент, и iframe находятся в разных доменах (т.е. URL-адрес родителя: - https://test.demo.com и URL-адрес iframe: - https://adyen.com) Если вы добавите относительный URL, упомянутый в src iframe, к родительскому URL, он будет перенаправлен на adyen.com. Там вы можете ввести учетные данные пользователя, однако, как только вы нажмете «Отправить», вы пропустите идентификатор транзакции, чтобы не возвращаться к родительскому URL)

<iframe id="ThreeDSecureIframe" src="/threedsecure/TriggerPostTo3Ds?clientPaymentTransactionId=7123456-">
  <input type="text" id="username">

При попытке использования javascript в консоли он жалуется на междоменную безопасность.

iOS-сафари как ошибка Appium: произошла неизвестная ошибка на стороне сервера во время обработки команды. Исходная ошибка: ошибка при выполнении atom: SecurityError (DOM Exception 18): заблокирован фрейм с источником «test.abc.com» из доступа к фрейму с источником «test.xyz.com». Протоколы, домены и порты должны совпадать.

enter image description here

...