Java 如何使用appium处理已安装的应用程序?
前提条件:已通过google play在设备中安装应用程序 当我尝试在设备中自动化已经安装的应用程序时,每次它都会打开google浏览器而不是打开应用程序 如果有人告诉我如何打开应用程序,我将在appium中打开一个新的应用程序 代码如下:Java 如何使用appium处理已安装的应用程序?,java,android,appium,Java,Android,Appium,前提条件:已通过google play在设备中安装应用程序 当我尝试在设备中自动化已经安装的应用程序时,每次它都会打开google浏览器而不是打开应用程序 如果有人告诉我如何打开应用程序,我将在appium中打开一个新的应用程序 代码如下: public class appium { private static AndroidDriver driver; public static void main(String[] args) throws InterruptedException
public class appium {
private static AndroidDriver driver;
public static void main(String[] args) throws InterruptedException, IOException {
File appDir = new File("D:/setup/android-sdk_r24.4.1-windows/android-sdk-windows");
File app = new File(appDir, "ab.java.programming-1.apk");
System.out.println("app Dir.--->"+app);
DesiredCapabilities capabilities = new DesiredCapabilities();
// Name of mobile web browser to automate. It should be an empty string, as we are automation an app
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
// Name of the OS: Android, iOS or FirefoxOS
capabilities.setCapability("platformName", "Android");
// Device name: – I am using Galaxy
capabilities.setCapability("deviceName", "Galaxy");
// Mobile OS version – My device is running Android 4.4.4
capabilities.setCapability("platformVersion", "4.4.4");
// An absolute local path to the APK file
//capabilities.setCapability("app", app.getCanonicalPath());
// Java package of the tested Android app
capabilities.setCapability("appPackage", "ab.java.programming");
// An activity name for the Android activity you want to run from your package.
capabilities.setCapability("appActivity", ".MainActivity");
// Constructor to initialize driver object with new Url and Capabilities
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
Thread.sleep(10000);
driver.quit();
}
}
您需要设置指向apk所在位置的功能
capabilities.setCapability("app", app.getAbsolutePath());
并确保选中appium窗口中的无重置
选项,使其不会重新安装apk
编辑:
下面是我如何运行位于桌面上的应用程序
File app = new File("app location which is in the desktop"); //install
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("deviceName", "LenovoB6000-HV");
capabilities.setCapability("platformVersion", "5.0.2");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "package name");
capabilities.setCapability("appActivity", "Activity name");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
Thread.sleep(10000);//wait before closing the app
driver.quit();
我已经从google play安装了.apk并将其保存在SDCard上,正如您所说,我已经设置了“getAbsolutePath()”的功能,并在appium窗口中选中了“No Rest”选项。但每当我首先运行项目时,它会安装一个构建名称“Unlock”,然后打开chrome浏览器。但我需要做的是“打开已经安装在设备中的应用程序”,等待它完成。解锁是appium在您的设备上运行的必要条件。您是否因为没有新命令而等待appium日志关闭?是的,在appium窗口上完成执行后,它也会生成日志。此外,完成后退出驱动程序。但应用程序并没有打开。如果是这样的话。我看不出有什么不对劲。我唯一查不到的是你的apk的位置。你能试着把它放在类似桌面的地方吗?我的应用程序位置是:“本地存储/设备存储/安卓/数据”,现在你能帮我吗?