Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Переключение на браузер

python
android
appium
ios
Теги: #<Tag:0x00007f7b62262cf0> #<Tag:0x00007f7b62262bb0> #<Tag:0x00007f7b62262a70> #<Tag:0x00007f7b62262930>

(Urtow) #1

Здравствуйте!

Прощу помощи в вопросе ответа на который не смог найти в гугле.

Есть приложение (navite iOS и Android). В приложении есть кнопка, по нажатию на которую открывается браузер с переходом на сайт.

Как получить url, который открыт в браузере?

И второй вопрос:

Вообще возможно ли в рамках одной сессии (driver) свернуть приложение и открыть браузер?

Все что я нашел - что к браузеру надо подключаться как к отдельному приложению, то есть надо создавать еще одно подключение к девайсу.

UPDATE:

Решение первого вопроса:

  1. установить и запустить ios_webkit_debug_proxy (через brew)
  2. В настройках safari на телефоне включить веб инспектор

(Константин) #2

switch.context на вебвью пробовали?


(Urtow) #3

switch,context работает очень странно в первом случае - иногда приложение перезапускалось, что и навело на мысли, а можно ли сделать иначе?

По второму вопросу - немного не понятно, куда переключать? Контетекста-то и нету.


(Константин) #4

а что вам возвращает driver.contexts ?

“Первый случай” - это какой? После каких действий приложение перезапускается?

Есть приложение (navite iOS и Android). В приложении есть кнопка, по нажатию на которую открывается браузер с переходом на сайт.

Т.е. запускается новое приложение интернет бразуер или же внутри вашего приложения открывается страничка?


(Urtow) #5

driver.contexts возвращает “Native_1”, “WEBAPP_1” через некоторое время после открытия браузера.

Да, запускается новое приложение Safari (на iOS).


(Константин) #6

Если не затруднит, можете показать, что для андроида возвращает driver.contexts, когда открывается браузер.

А также, какой браузер открывается на андроиде?(стоковый или mobile chrome)
И с этого браузера вам нужно только урл получить?


(Urtow) #7

К сожалению, затруднит. Сейчас есть только iOS версия, android будет позже, вопросы был с заделом.

Да, из этого браузера (который открывается по нажатию на кнопку) надо получить только URL


(Константин) #8

К сожалению с IOS почти не работал(
Допустим в данном случае как можно было бы попробовать сделать. На примере с андроидом и мобильным хромом. С браузером работать в нативном контексте, как с приложением. Адресная строка это отдельный элемент, который имеет айдишники и т.п., в том числе из адресной строки можно получить текст который будет являться вашим урлом ну и вам остается только сравнить текст.
К сожалению, как в мобильном сафари это выглядит я не ведаю. И можно ли вообще мобильный сафари инспектировать как приложение.


(Urtow) #9

Инспектор, встроенный в Appium.app (Который использует instruments) не умеет :frowning:

Спасибо! Буду знать что на Android задача не самая сложная, так как браузер в принципе не важен - важен url


(Константин) #10

Расскажите, если получится решить вашу проблему с IOS.
Вскоре тоже предстоит переключиться на автоматизацию IOS приложений. Так что любая информация будет полезной


(Urtow) #11

Да вот чую можно будет доклад на эту тему писать :smile:


(Urtow) #12

Внезапно нашлось решение, без переключения контекста.

С Safari можно работать так же как с простым приложением - но для этого нужны две вещи:

  1. Установить и запустить ios_webkit_debug_proxy (ставится на mac через brew)
  2. В настройках сафари (Settings - Safari - Advanced) включить веб инспектор.

И все, дальше можно работать как с обычным приложением.

В частности найти URL можно по name как ни странно URL