如何阻止appium清除Android应用程序数据?

x6yk4ghg  于 11个月前  发布在  Android
关注(0)|答案(5)|浏览(179)

我在升级我的appium版本到1.6.3后遇到了这个问题。每当我使用driver.launchApp();命令时,它会清除应用程序数据,由于这个原因,我无法执行下一个tese案例。
我试着设置下面所需的能力,以及但它仍然是清除应用程序的数据,每次当我尝试启动应用程序。

capabilities.setCapability("noReset", "true");

字符串
所以情况是,我登录到应用程序,然后重新启动应用程序和appium清除应用程序数据,并再次登录屏幕出现不应该出现.
下面是我们可以清楚地看到appium正在清除应用程序数据的日志。

[debug] [ADB] Running 'C:\Users\Vinod\AndroidSDK\platform-tools\adb.exe' with args: ["-P",5037,"-s","079a1ea4d037eeb7","shell","am","force-stop","PACKAGENAME"]
[debug] [ADB] Getting connected devices...
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running 'C:\Users\Vinod\AndroidSDK\platform-tools\adb.exe' with args: ["-P",5037,"-s","079a1ea4d037eeb7","shell","pm","clear","PACKAGENAME"]
[debug] [ADB] Device API level: 23
[debug] [ADB] Getting connected devices...
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running 'C:\Users\Vinod\AndroidSDK\platform-tools\adb.exe' with args: ["-P",5037,"-s","079a1ea4d037eeb7","shell","am","start","-W","-n","PACKAGENAME/.ui.SplashActivity","-S","-a","android.intent.action.MAIN","-c","android.intent.category.LAUNCHER","-f","0x10200000"]

ut6juiuv

ut6juiuv1#

您需要添加下面的代码在capability

DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("noReset", "true");
cap.setCapability("fullReset", "false");

字符串
对我很有效。

xe55xuns

xe55xuns2#

确保设置了此功能:尽管此功能的默认值为false,但仍然值得一试。

capabilities.setCapability("fullReset", "false");

字符串
如果它不工作,请提供一个代码样本从您的项目。

qpgpyjmq

qpgpyjmq3#

如果你删除了driver.launchApp();语句,那么它应该可以正常工作。
你不需要调用这个方法,因为appium会在启动你的服务器时为你做这个。

6l7fqoea

6l7fqoea4#

希望你得到了解决方案。如果没有,你可以试试这个。Appium版本1.14.2

DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.FULL_RESET, "False");
        cap.setCapability(MobileCapabilityType.NO_RESET, "True");

字符串

9avjhtql

9avjhtql5#

由于所需的功能已被弃用,因此认为这会有所帮助。
使用**.noReset().doesNoReset()**在我的情况下帮助,在下面找到完整的片段。

var ltOptions = new HashMap<String, Object> ();
    
    ltOptions.put("deviceName", "Redmi K20 Pro");
    ltOptions.put("platformName", "Android");
    ltOptions.put("platformVersion", "11");
    ltOptions.put("udid", "aaa88c0");
    
    var options1 = new UiAutomator2Options();
    options1.setUdid("aaa88c0");
    options1.noReset();
    options1.doesNoReset();
    options1.setClearSystemFiles(false);

    URL url = new URL("http://localhost:4723/wd/hub");
    AndroidDriver driver1 = new AndroidDriver(url, options1);

字符串

相关问题