Appium-Real Me 3 Pro设备:禁止获取java.lang.securityexception adb清除



我是Appium的新手,同时在我的设备上启动chrome浏览器"Real me 3 Pro";我得到以下铬异常:

java.lang.SecurityException:禁止adb清除用户数据

请查看以下详细信息:Appium版本:1.19.1安卓版本:10电话:Real me 3 pro注意:我已经在"设置"中启用了"禁用权限监视"。

PFB:

Java代码:

baseChrome.java

package Appium.tutorial;
import java.io.File;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.MobileCapabilityType;
public class baseChrome {

public static AndroidDriver<AndroidElement> Capabilities(String device) throws Exception {

/*File file = new File("src/test/java");
File fs = new File(file, "ApiDemos-debug.apk");   */


DesiredCapabilities Cap = new DesiredCapabilities();
if(device.equalsIgnoreCase("emulator")) {
Cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Pixel2HemantEmulator");
Cap.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
Cap.setCapability("noReset",true);
}
else if(device.equalsIgnoreCase("real")) {
Cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Device");
Cap.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
Cap.setCapability("noReset",true);
}
// 

Cap.setCapability(MobileCapabilityType.AUTOMATION_NAME,"uiautomator2");
//  Cap.setCapability(MobileCapabilityType.APP, fs.getAbsolutePath());
AndroidDriver<AndroidElement> driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), Cap);
return driver;
}
}

Launchchrome.java

package Appium.tutorial;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
public class launchChrome extends baseChrome{
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
AndroidDriver<AndroidElement> driver = Capabilities("real");
driver.get("https://timesofindia.indiatimes.com/");
}
}

Eclipse日志:

=============================================

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: An unknown server-side error occurred while processing the command. Original error: An unknown server-side error occurred while processing the command. Original error: unknown error: Failed to clear data for com.android.chrome on device bc4ff854: Security exception: adb clearing user data is forbidden.
java.lang.SecurityException: adb clearing user data is forbidden.
at com.android.server.pm.ColorClearDataProtectManager.interceptClearUserDataIfNeeded(ColorClearDataProtectManager.java:88)
at com.android.server.pm.OppoBasePackageManagerService$OppoPackageManagerInternalImpl.interceptClearUserDataIfNeeded(OppoBasePackageManagerService.java:721)
at com.android.server.am.ActivityManagerService.clearApplicationUserData(ActivityManagerService.java:4463)
at com.android.server.pm.PackageManagerShellCommand.runClear(PackageManagerShellCommand.java:1837)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:212)
at android.os.ShellCommand.exec(ShellCommand.java:104)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:24009)
at android.os.Binder.shellCommand(Binder.java:881)
at android.os.Binder.onTransact(Binder.java:765)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:5100)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4791)
at com.android.server.pm.OppoPackageManagerService.onTransact(OppoPackageManagerService.java:83)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'HEMANTV', ip: '192.168.43.86', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.9'
Driver info: driver.version: AndroidDriver
remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: An unknown server-side error occurred while processing the command. Original error: unknown error: Failed to clear data for com.android.chrome on device bc4ff854: Security exception: adb clearing user data is forbidden.
java.lang.SecurityException: adb clearing user data is forbidden.
at com.android.server.pm.ColorClearDataProtectManager.interceptClearUserDataIfNeeded(ColorClearDataProtectManager.java:88)
at com.android.server.pm.OppoBasePackageManagerService$OppoPackageManagerInternalImpl.interceptClearUserDataIfNeeded(OppoBasePackageManagerService.java:721)
at com.android.server.am.ActivityManagerService.clearApplicationUserData(ActivityManagerService.java:4463)
at com.android.server.pm.PackageManagerShellCommand.runClear(PackageManagerShellCommand.java:1837)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:212)
at android.os.ShellCommand.exec(ShellCommand.java:104)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:24009)
at android.os.Binder.shellCommand(Binder.java:881)
at android.os.Binder.onTransact(Binder.java:765)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:5100)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4791)
at com.android.server.pm.OppoPackageManagerService.onTransact(OppoPackageManagerService.java:83)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
at getResponseForW3CError (C:UsersACERAppDataRoamingnpmnode_modulesappiumnode_modulesappium-base-driverlibprotocolerrors.js:804:9)
at asyncHandler (C:UsersACERAppDataRoamingnpmnode_modulesappiumnode_modulesappium-base-driverlibprotocolprotocol.js:384:37)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'HEMANTV', ip: '192.168.43.86', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.9'
Driver info: driver.version: AndroidDriver
at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:216)
at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:225)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:247)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:41)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
at io.appium.java_client.AppiumDriver.startSession(AppiumDriver.java:338)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:37)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:89)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:99)
at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:96)
at Appium.tutorial.baseChrome.Capabilities(baseChrome.java:35)
at Appium.tutorial.launchChrome.main(launchChrome.java:10)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:193)
... 15 more
Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: An unknown server-side error occurred while processing the command. Original error: unknown error: Failed to clear data for com.android.chrome on device bc4ff854: Security exception: adb clearing user data is forbidden.
java.lang.SecurityException: adb clearing user data is forbidden.
at com.android.server.pm.ColorClearDataProtectManager.interceptClearUserDataIfNeeded(ColorClearDataProtectManager.java:88)
at com.android.server.pm.OppoBasePackageManagerService$OppoPackageManagerInternalImpl.interceptClearUserDataIfNeeded(OppoBasePackageManagerService.java:721)
at com.android.server.am.ActivityManagerService.clearApplicationUserData(ActivityManagerService.java:4463)
at com.android.server.pm.PackageManagerShellCommand.runClear(PackageManagerShellCommand.java:1837)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:212)
at android.os.ShellCommand.exec(ShellCommand.java:104)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:24009)
at android.os.Binder.shellCommand(Binder.java:881)
at android.os.Binder.onTransact(Binder.java:765)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:5100)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4791)
at com.android.server.pm.OppoPackageManagerService.onTransact(OppoPackageManagerService.java:83)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'HEMANTV', ip: '192.168.43.86', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.9'
Driver info: driver.version: AndroidDriver
remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: An unknown server-side error occurred while processing the command. Original error: unknown error: Failed to clear data for com.android.chrome on device bc4ff854: Security exception: adb clearing user data is forbidden.
java.lang.SecurityException: adb clearing user data is forbidden.
at com.android.server.pm.ColorClearDataProtectManager.interceptClearUserDataIfNeeded(ColorClearDataProtectManager.java:88)
at com.android.server.pm.OppoBasePackageManagerService$OppoPackageManagerInternalImpl.interceptClearUserDataIfNeeded(OppoBasePackageManagerService.java:721)
at com.android.server.am.ActivityManagerService.clearApplicationUserData(ActivityManagerService.java:4463)
at com.android.server.pm.PackageManagerShellCommand.runClear(PackageManagerShellCommand.java:1837)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:212)
at android.os.ShellCommand.exec(ShellCommand.java:104)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:24009)
at android.os.Binder.shellCommand(Binder.java:881)
at android.os.Binder.onTransact(Binder.java:765)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:5100)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4791)
at com.android.server.pm.OppoPackageManagerService.onTransact(OppoPackageManagerService.java:83)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
at getResponseForW3CError (C:UsersACERAppDataRoamingnpmnode_modulesappiumnode_modulesappium-base-driverlibprotocolerrors.js:804:9)
at asyncHandler (C:UsersACERAppDataRoamingnpmnode_modulesappiumnode_modulesappium-base-driverlibprotocolprotocol.js:384:37)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62)
at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:543)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128)
... 20 more

这不是Appium故障,根本原因是设备不允许清除adb命令。

首先要尝试的是删除线路Cap.setCapability("noReset",true);

如果问题仍然存在,请尝试其他设备。如果重点是在这个设备上运行,你需要探索如何用额外的选项启动chrome,你可以在这里查看更多细节

最新更新