1

自动化的场景是:

我安装了一个应用程序并成功登录。有一个“应用程序锁定”功能可以关闭应用程序。我单击了应用程序锁定并关闭了应用程序。现在,我需要在不安装和登录的情况下再次打开应用程序。

简而言之,情况如下:
1. 安装并登录应用程序。
2. 关闭应用程序。
3. 重新打开应用程序。

预期结果:
应打开应用程序并显示登录后屏幕

实际:
使用以下功能,但重新安装应用程序并显示注册(预登录)屏幕

我搜索答案并找到以下功能,但它没有用。

    File appDir = new File(appDirr);
    File app = new File(appDir, "appName");
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("deviceName", "Samsung Galaxy S8");
    caps.setCapability("appPackage", "appPackageName");
    caps.setCapability("appActivity", "appActivityName");
    caps.setCapability("platformName", "Android");
    caps.setCapability("app", app.getAbsolutePath());
    appiumDriver = new AppiumDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), caps);

请让我知道如何使这种情况自动化。
谢谢!

4

5 回答 5

0

删除以下功能:

caps.setCapability("app", app.getAbsolutePath());//This installs the application

使用此方法:

appiumDriver.activateApp(appPackage);

您应该知道您的应用程序appPackageappActivityName.

appPackage 和 appActivityName

于 2019-08-29T07:06:57.253 回答
0

您可以使用以下方法

1. Install the application and login successfully. lock app using "App Lock"  

2. Open application again without installing by using adb command to launch the activity like below example 

adb shell am start -n com.example.package(把你的包名放在这里)/.MainActivity(要启动的活动)

于 2019-08-30T18:13:57.833 回答
0

如果您不希望 Appium 对应用程序做任何事情,您可以考虑将autoLaunch Desired Capability设置为false

autoLaunch- 自动初始化被测应用。如果这是错误的,Appium 不会安装/启动正在测试的应用程序。默认为真

当你想启动应用程序时,你可以使用AndroidDriver.launchApp()函数

于 2019-08-29T08:18:20.800 回答
0
capabilities.setCapability("noReset", "true");

使用这个capability。并非每次测试都安装您的应用程序。

如果您想在运行测试时关闭应用程序,那么您应该再次使用 to方法driver.closeApp(). 打开应用程序。driver.launchApp()

于 2019-08-29T07:04:21.763 回答
0

这对我有用

{
  "platformName": "Android",
  "deviceName": "Android",
  "automationName": "Appium",
  "appPackage": "com.bla.automation",
  "appActivity": "com.bla.splash.SplashScreenActivity",
  "noReset": true,
  "fullReset": false,
  "dontStopAppOnReset": false,
  "autoLaunch": false
}
于 2021-11-17T20:30:00.217 回答