#selenium #selenium-chromedriver #appium #robotframework
Вопрос:
Мне нужно запустить мобильный браузер на устройствах Android, однако я сталкиваюсь с этой ошибкой
WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'adb -P 5037 -s emulator-5554 shell pm clear com.android.chrome' exited with code 255'; Stderr: 'Security exception: adb clearing user data is forbidden.
java.lang.SecurityException: adb clearing user data is forbidden.
at com.android.server.am.ActivityManagerService.clearApplicationUserData(ActivityManagerService.java:7612)
at com.android.server.pm.PackageManagerShellCommand.runClear(PackageManagerShellCommand.java:1616)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:199)
at android.os.ShellCommand.exec(ShellCommand.java:103)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:24713)
at android.os.Binder.shellCommand(Binder.java:634)
at android.os.Binder.onTransact(Binder.java:532)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:3075)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4713)
at android.os.Binder.execTransact(Binder.java:731)'; Code: '255'
androidUseRunningApp
или noReset True
не работает на меня
Кто-нибудь сейчас знает, как преодолеть эту ошибку? Это то, что я пытаюсь
AndroidConnection
${Options} Create Dictionary androidPackage com.android.chrome
${caps} Create Dictionary chromeOptions ${Options}
Set to Dictionary ${caps} platformName Android
Set to Dictionary ${caps} platformVersion 9.0
Set To Dictionary ${caps} deviceName emulator-5554
Set To Dictionary ${caps} browserName Chrome
Set To Dictionary ${caps} noReset true
Create Webdriver Remote command_executor=http://localhost:4723/wd/hub desired_capabilities=${caps}
go to https://google.com
Close Browser
AndroidConnection
${Options} Create Dictionary androidPackage com.android.chrome
${caps} Create Dictionary chromeOptions ${Options}
Set to Dictionary ${caps} platformName Android
Set to Dictionary ${caps} platformVersion 9.0
Set To Dictionary ${caps} deviceName emulator-5554
Set To Dictionary ${caps} browserName Chrome
Set To Dictionary ${caps} androidUseRunningApp true
Create Webdriver Remote command_executor=http://localhost:4723/wd/hub desired_capabilities=${caps}
go to https://google.com
Close Browser
Комментарии:
1. вы используете корневое устройство ?
2. Нет, я использую некорневое устройство (Realme C2)
Ответ №1:
- Запустите сервер Android Debug Bridge (adb) для Android SDK:
adb start-server
- При тестировании приложения Chrome до версии 33 убедитесь, что оболочка adb имеет доступ для чтения/записи к /данным/локальному каталогу на устройстве:
adb shell su -c chmod 777 /data/local
выполните эту команду , на вашем телефоне появится уведомление . нажмите кнопку принять
еще установите опцию chrome ,
detach:false
Комментарии:
1. Я получаю
/system/bin/sh: su: not found
ошибку при выполненииadb shell su -c chmod 777 /data/local
. Я использую chrome версии 91 на мобильных устройствах2. убедитесь, что вы запустили стартовый сервер adb, можете ли вы видеть устройства, использующие устройства adb ? вы включили режим разработчика ? вы включили отключение USB-подключения ?
3. Да, у меня есть start-сервер, я могу видеть устройства с
adb devices
устройствами и подключаться к ним при запускеadb shell
, однако я получил ошибку при запускеsu
команды в командной консоли adb. Еще одна опция, использующаяdetach:false
, как добавить эту опцию в работу с роботами? ` Соединение с андроидом ${Параметры} Создание словаря androidPackage com.android.chrome ${caps} Создание словаря ChromeOptions ${Параметры} Установите значение Словарь ${заглавные буквы} отсоединить false ` по-прежнему появляется та же ошибка Данные очистки adb запрещены4. Кто-нибудь знает, как преодолеть эту проблему?