簡體   English   中英

如何使用Appium C處理Android權限對話#

[英]How to handle Android permission Dialogues using Appium C#

我正在使用Appium和C#客戶端。

啟動Android應用程序時,我會收到幾個這樣的權限對話框。

Android屏幕截圖

我想點擊“允許”或“拒絕”按鈕,我無法使用下面的代碼。

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

經過大量的谷歌搜索,我發現我們可以通過使用以下功能跳過這些權限。

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

但我想知道是否有其他方法可以做到這一點。

提前致謝。

我不知道你在哪里獲得這個permission_allow_button ID,我不認為定位器是正確的。

以下是我在Android Device Monitor應用程序中的樣子

在此輸入圖像描述

因此,如果您仍想使用通過ID查找元素策略 - 您應該使用com.android.packageinstaller:id/permission_allow_button ID。

另一個選擇是XPath選擇器,如:

  • //Button[@text()='ALLOW]
  • //Button[@resource-id='com.android.packageinstaller:id/permission_allow_button']

您只能通過Xpath定位器來完成。 按ID查找不適用於權限對話框處理。 要找到“允許”按鈕,您可以使用

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));

希望這會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM