我必须点击ALLOW,才能在Android 7.0上获得应用权限。
我尝试了以下xpath
//android.widget.Button[contains(@resource-id,'com.android.packageinstaller:id/permission_allow_button')]
还尝试了//android.widget.Button[@text='ALLOW']
获取错误:
答案 0 :(得分:1)
你可以尝试一下:
driver.findElement(By.id("com.android.packageinstaller:id/permission_allow_button")).click();
或
driver.findElement(By.Name("Allow")).click();
或
driver.findElement(new By.ByName("Allow")).click();
这对我来说很好。
答案 1 :(得分:0)
因为,App请求许可。您可以使用所需功能直接允许权限。 试试这个:
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("autoGrantPermissions", "true");
答案 2 :(得分:0)
首先,您需要找到警报,无论是否存在? 那么你可以做的就是你可以创建列表,它会检查警报是否存在?然后,如果出现警报,则会点击允许按钮。
我正在使用PageObjectFactory Pattern,所以以下是我的代码,对我来说很好用:
@AndroidFindBy(xpath = "//android.widget.Button[@text='ALLOW']")
private List<MobileElement> alert;
@AndroidFindBy(xpath = "//android.widget.Button[@text='ALLOW']")
private MobileElement allowAlert;
if (!alert.isEmpty()) {
try {
// do something
} catch (InterruptedException e) {
e.printStackTrace();
}
waitForElement(appiumDriver, allowAlert).click();
}