Browserstack Automate: базовая HTTP-аутентификация на iOS

Я использую набор тестов на основе JavaScript/wdio для тестирования веб-сайта с помощью BrowserStack Automate. Часть страниц, которые я тестирую, требует базовой HTTP-аутентификации.

BrowserStack предлагает в своих FAQ для Screenshot API использовать следующий формат: http://имяпользователя:пароль@www.xyz.com

Хотя это работает в некоторых браузерах, другие, такие как Safari на iOS, похоже, не поддерживают предоставление учетных данных в URL-адресе. Я думаю, что было бы необходимо предоставить их как HTTP-заголовок.

Есть ли способ заставить это работать?

введите здесь описание изображения


person smichaelsen    schedule 12.05.2020    source источник
comment
Выполните его с помощью appium версии «1.16.0», у меня это сработало.   -  person Heena    schedule 12.05.2020


Ответы (2)


Вы можете добавить это в возможности:

"safariIgnoreFraudWarning " : "true",

это сработало для меня для iOS.

person mahmoud elaallouli    schedule 19.02.2021

Вот ссылка, которая может помочь: https://www.browserstack.com/docs/automate/selenium/basic-http-authentication#pass-username-and-password-in-the-url

В нем говорится, что Safari не поддерживает базовую аутентификацию, передавая имя пользователя и пароль в URL-адресе.

Есть способ сделать это с помощью JavascriptExecutor. Я использовал его, когда после отправки формы появлялось всплывающее окно BasicAuthentication.

// here code that submits the form / clicks the link etc which brings you to basic auth
caps.setCapability("unhandledPromptBehavior", "ignore"); 
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("browserstack_executor: {\"action\": \"sendBasicAuth\", \"arguments\": {\"username\":\"<username>\", \"password\": \"<password>\", \"timeout\": \"<time in milliseconds>\"}}");

Это сработало для моего случая.

person Diana    schedule 09.06.2021