多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Android 仿真器的 Appium 所需功能[示例] > 原文: [https://www.guru99.com/appium-desired-capabilities.html](https://www.guru99.com/appium-desired-capabilities.html) 本教程将帮助您了解 APPIUM 自动化工具。 它将涵盖所需的功能和 MIUM 用途的 APPIUM。 在本教程中,您将学习- * [什么是所需功能?](#1) * [提取程序包&活动信息](#2) ## 什么是所需功能 “所需功能”可帮助我们在自动化过程中修改服务器的行为。 在 Appium 中,它是一种哈希图或键值对,用于将命令发送到 APPIUM 服务器。 在 APPIUM 中,所有客户端命令都在会话上下文中运行。 例如,客户端向 APPIUM 服务器发送了包含 JSON 对象的 POST /会话请求。 因此,为了发送任何期望的请求或维持与服务器的任何期望的会话,使用了一组键和值对。 这就是**“所需功能”。** ``` import io.appium.java_client.AppiumDriver; import org.openqa.selenium.remote.DesiredCapabilities; { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName","Android Emulator"); capabilities.setCapability("platformVersion", "4.4"); } ``` **所需功能的重要作用-** * 'DesiredCapabilities'帮助用户控制与服务器的会话请求。 例如,如果我们想要 iOS 会话,则可以将 Capability 设置为 PlatformName = iOS。 或者,如果我们想要 Android 会话,则可以将 Capability 设置为 PlatformName = Android。 * “ DesiredCapabilities”用于设置 Webdriver 实例,例如:FirefoxDriver,ChromeDriver,InternetExplorerDriver 等。 * DesiredCapability 对于[硒](/selenium-tutorial.html)网格非常有用。 例如:它用于在不同的浏览器和不同的操作系统上访问不同的测试用例。 基于提到的 DesiredCapability Grid,集线器将指向相应的节点。 在这里,这些节点是使用“设置”属性方法定义的,例如:- ``` DesiredCapabilities obj = new DesiredCapabilities(); obj.setBrowserName("firefox"); obj.setVersion("18.0.1"); obj.setPlatform(org.openqa.selenium.Platform.WINDOWS); ``` * 所需的功能是库定义的程序包。 在使用“ DesiredCapabilities”之前,应从下面提到的库 ``` Org.openqa.selenium.remote.DesiredCapabilities ``` 中导入 APPIUM 支持 Android 和 iOS。 因此,有一组单独的 Appium 服务器功能。 下表描述了一些常用的 Android 功能及其使用价值- | **功能** | **说明** | **值/使用** | | --- | --- | --- | | appPackage | 在 Android 中调用用户想要运行的所需 [Java](/java-tutorial.html) 程序包 | 值= com.example.myapp / Obj.setCapability(“ appPackage”,“ com.whatsapp”); | | appActivity | 用户想要从包中启动的应用程序活动。 | 值= MainActivity,设置 Obj.setCapability(“ appActivity”,“ com.whatsapp.Main”); | | appWaitPackage | 应用程序需要等待的软件包 | 值= com.example.android.myapp | | appWaitActivity | 用户需要等待时间的任何 Android 活动 | 值= SplashActivity 能力.setCapability(“ appWaitActivity”,“ com.example.game.SplashActivity”) | **注意**-请参阅此链接' [https://appium.io/docs/zh-CN/writing-running-appium/caps/#android-only](https://appium.io/docs/en/writing-running-appium/caps/#android-only ) '以查看更多的 Android 功能 下表描述了一些常用的 iOS 功能及其使用价值- | 能力 | 描述 | 价值观 | | --- | --- | --- | | LaunchTimeout | 等待检测的总时间(以毫秒为单位)。 | 2000 | | 你做了 | 为连接的物理设备标识唯一的设备号 | 第 166 章 | **注-**请参阅此链接' [http://appium.io/slate/zh/master/?java#ios-only](https://appium.io/docs/en/writing-running-appium/caps/#ios-only) '以查看更多的 iOS 功能 ## 提取程序包&活动信息 软件包与捆绑的文件或类有关。 它为模块化编程提供了一种有组织的结构。 在 Java 中,不同的程序包存储在单个 Jar 文件中。 用户可以轻松调用 jar 文件以完整执行。 在移动应用程序开发世界中遵循类似的概念。 在 Android 操作系统中,所有应用程序均以 JAVA 软件包的形式安装。 因此,要提取包路径信息,将使用 Android PackageManager 类。 它检索安装前和安装后应用程序的软件包和活动信息。 它已安装在 Android 设备中。 您可以通过调用 getPackageManager()获得 PackageManager 类的实例。 此方法可以访问和操纵程序包以及已安装应用程序的相关权限。 例如 - ``` PackageManager pManager = getPackageManager(); List<ApplicationInfo> list = pManager.getInstalledApplications(PackageManager.GET_META_DATA) ``` **摘要:** * 所需功能始终在键值对上运行,以将命令发送到 APPIUM Server。 * 使用“ PackageManager”类在 Android 中提取应用程序信息。