使用 driver.launchApp(); 每次重新安装我的应用。那我怎么能阻止这个呢?
if($scope.savedDesc.length <= 0 && $scope.savedDesc != null && $scope.savedDesc != 'undefined') {
access.getDesc($scope.id, function(data){
$scope.savedDesc = data;
});
}
在我的测试案例中
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
capabilities.setCapability(CapabilityType.VERSION, Android_Version);
capabilities.setCapability(CapabilityType.PLATFORM, "Android");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", DeviceName);
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("app-package", app_package);
capabilities.setCapability("app-activity", app_activity);
try{
driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
APP_LOGS.info("Appium driver is initialized!!");
driver.closeApp();
}
答案 0 :(得分:5)
您可以执行一项或多项操作来反复停止安装应用程序。
一个。 设置appium --no-reset标志为真:当我们不希望在会话之间重置应用状态时使用此标志(IOS:不删除应用程序plist文件; Android:don在新会话之前卸载应用程序。其默认值为False,
您可以使用&#34; appium --no-reset &#34;启动您的appium服务器命令或包括服务器功能,如:
<div data-bind="datepicker: { date: myDate, additionalData: someObservable }"></div>
湾确保 - 完全重置标志为假: :( iOS)删除整个模拟器文件夹。 (Android)通过卸载应用而不是清除应用数据来重置应用状态。在Android上,这也将在会话完成后删除应用程序。默认为false。
capabilities.setCapability("noReset","true");
℃。我认为您需要从测试用例中删除launceApp()和closeApp()方法,而不是只编写测试用例代码instde @Test Case方法
d。只要确保您的应用程序已经安装在设备上,默认情况下单元测试的执行顺序就像@Before @Test和@After所以您的SetUp方法将首先运行,而不是您的测试用例和最后的Teardown方法。因此Setup()将包含服务器功能和测试环境。 Specification和TearDown()将用于关闭/退出应用程序,
您可以在下面找到我的代码:
capabilities.setCapability("fullReset","false");
希望你觉得这很有用,问候