Android phone:如何使用 Appium 简单地打开应用程序而不安装(因为它已经安装)
Android phone: How to simply open an application without installation (as it is already installed) using Appium
要自动化的场景是:
我安装了一个应用程序并成功登录。有一个 "App Lock" 功能可以关闭应用程序。
我单击了 App Lock,应用程序已关闭。现在,我需要在没有安装和登录的情况下再次打开应用程序。
简而言之,场景如下:
1. 安装并登录应用程序。
2.关闭应用程序。
3. 重新打开应用程序。
预期结果:
应打开应用程序并显示 post 登录屏幕
实际:
在以下功能下使用,但重新安装应用程序并显示注册(登录前)屏幕
我搜索答案并找到以下功能,但没有用。
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);
请告诉我如何自动执行此场景。
谢谢!
capabilities.setCapability("noReset", "true");
使用这个capability
。并非每次测试都安装您的应用程序。
如果你想在 运行 测试时关闭应用程序,那么你应该 driver.closeApp().
然后使用 driver.launchApp()
方法再次打开应用程序。
删除以下功能:
caps.setCapability("app", app.getAbsolutePath());//This installs the application
使用这个方法:
appiumDriver.activateApp(appPackage);
您应该了解您的应用程序 appPackage
和 appActivityName
。
如果您不希望 Appium 对应用程序执行任何操作,您可以考虑将 autoLaunch
Desired Capability 设置为 false
autoLaunch
- Initializing the app under test automatically. Appium does not install/launch the app under test if this is false. Defaults to true
当你想启动应用程序时,你可以使用AndroidDriver.launchApp()功能
您可以使用以下方法
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 (Activity 待推出 )
这对我有用
{
"platformName": "Android",
"deviceName": "Android",
"automationName": "Appium",
"appPackage": "com.bla.automation",
"appActivity": "com.bla.splash.SplashScreenActivity",
"noReset": true,
"fullReset": false,
"dontStopAppOnReset": false,
"autoLaunch": false
}
要自动化的场景是:
我安装了一个应用程序并成功登录。有一个 "App Lock" 功能可以关闭应用程序。 我单击了 App Lock,应用程序已关闭。现在,我需要在没有安装和登录的情况下再次打开应用程序。
简而言之,场景如下:
1. 安装并登录应用程序。
2.关闭应用程序。
3. 重新打开应用程序。
预期结果:
应打开应用程序并显示 post 登录屏幕
实际:
在以下功能下使用,但重新安装应用程序并显示注册(登录前)屏幕
我搜索答案并找到以下功能,但没有用。
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);
请告诉我如何自动执行此场景。
谢谢!
capabilities.setCapability("noReset", "true");
使用这个capability
。并非每次测试都安装您的应用程序。
如果你想在 运行 测试时关闭应用程序,那么你应该 driver.closeApp().
然后使用 driver.launchApp()
方法再次打开应用程序。
删除以下功能:
caps.setCapability("app", app.getAbsolutePath());//This installs the application
使用这个方法:
appiumDriver.activateApp(appPackage);
您应该了解您的应用程序 appPackage
和 appActivityName
。
如果您不希望 Appium 对应用程序执行任何操作,您可以考虑将 autoLaunch
Desired Capability 设置为 false
autoLaunch
- Initializing the app under test automatically. Appium does not install/launch the app under test if this is false. Defaults to true
当你想启动应用程序时,你可以使用AndroidDriver.launchApp()功能
您可以使用以下方法
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 (Activity 待推出 )
这对我有用
{
"platformName": "Android",
"deviceName": "Android",
"automationName": "Appium",
"appPackage": "com.bla.automation",
"appActivity": "com.bla.splash.SplashScreenActivity",
"noReset": true,
"fullReset": false,
"dontStopAppOnReset": false,
"autoLaunch": false
}