Как обрабатывать диалоги разрешений Android с помощью Appium C # - PullRequest
0 голосов
/ 15 мая 2019

Я использую Appium с клиентом C #.

При запуске приложения для Android я получаю несколько диалоговых окон с разрешениями, подобных этому.

Android Screenshot

Я хотел бы нажать на кнопки «Разрешить» или «Запретить», что я не могу сделать с помощью приведенного ниже кода.

var Allow_Btn = driver.FindElementById("permission_allow_button");
Allow_Btn.Click();

После долгих поисков я обнаружил, что мы можемпропустите эти разрешения, используя приведенную ниже возможность.

Capability.SetCapability("autoGrantPermissions", "true");

Но я хотел бы знать, есть ли другой способ сделать это.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Вы можете сделать это только локаторами Xpath. Поиск по идентификатору не сработал бы для обработки диалогов разрешений. Чтобы найти кнопку «Разрешить», вы можете использовать

driver.find_element_by_xpath("//*[@class='android.widget.Button'][2]") //it denotes "Allow" button

и для кнопки "DENY" вы,

driver.find_element_by_xpath("//*[@class='android.widget.Button'][1]") //it denotes "Deny" button

Прежде чем нажать кнопку, следует подождать, пока элемент не найдется

WebDriverWait wait = new WebDriverWait(driver, timeOut);                
wait.until(ExpectedConditions.presenceOfElementLocated(element));

Надеюсь, это поможет вам.

0 голосов
/ 15 мая 2019

Я не знаю, где вы взяли этот permission_allow_button ID, я не думаю, что локатор правильный.

Вот как это выглядит для меня в приложении Android Device Monitor

enter image description here

Так что, если вы все еще хотите использовать стратегию для нахождения элемента по идентификатору - вы должны использовать com.android.packageinstaller:id/permission_allow_button ID.

Еще одна опция доступна для XPath селекторов вроде:

  • //Button[@text()='ALLOW]
  • //Button[@resource-id='com.android.packageinstaller:id/permission_allow_button']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...