Robotframework — абр очистка пользовательских данных запрещена

#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:

  1. Запустите сервер Android Debug Bridge (adb) для Android SDK:
     adb start-server
     
  2. При тестировании приложения 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. Кто-нибудь знает, как преодолеть эту проблему?