系列介绍
Appium Desired Capabilities 介绍
Capabilities 官网文档地址:http://appium.io/docs/en/writing-running-appium/caps/index.html
Android 初始化实例
- USB 连接设备,打开设备 USB 调试后即可使用
package com.test;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.MobileBy;
import io.appium.java_client.android.AndroidDriver;
public class Appium {
public static void main(String[] args) throws Exception {
AndroidDriver driver;
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("automationName", "uiautomator2");// appium做自动化
// cap.setCapability("app", "C:\\software\\jrtt.apk");//安装apk
// cap.setCapability("browserName", "chrome");//设置HTML5的自动化,打开谷歌浏览器
cap.setCapability("deviceName", "5fa632f");// 设备名称
cap.setCapability("platformName", "Android"); // 安卓自动化还是IOS自动化
cap.setCapability("platformVersion", "5.0.2"); // 安卓操作系统版本
cap.setCapability("udid", "5fa632f"); // 设备的udid (adb devices 查看到的)
cap.setCapability("appPackage", "xxx.xxxx.xxx");// 被测app的包名
cap.setCapability("appActivity", "xxx.xxxx.xxxxActivity");// 被测app的入口Activity名称
cap.setCapability("unicodeKeyboard", "True"); // 支持中文输入
cap.setCapability("resetKeyboard", "True"); // 支持中文输入,必须两条都配置
cap.setCapability("noSign", "True"); // 不重新签名apk
cap.setCapability("newCommandTimeout", "300"); // 没有新命令,appium30秒退出
driver = new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"), cap);// 把以上配置传到appium服务端并连接手机
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);// 隐式等待
// 通过xxx定位元素
driver.findElement(MobileBy.AccessibilityId("")).click();
driver.findElement(MobileBy.AndroidUIAutomator("")).click();
driver.findElement(MobileBy.id("")).click();
driver.findElement(MobileBy.xpath("")).click();
}
}
iOS 初始化实例
- iOS 运行前应该使用 XCODE 打开/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj, 登录 Apple 开发者账号,编辑相关项
- WebDriverAgentLib 页面
- 在 Identity 菜单下 Bundel Identifier 项,将 com.facebook.wda.lib 修改为 com.xxx.wda.lib
- 在 Signing 菜单下勾选 Automatically manage signing,然后在 Team 处选择开发者账号
- WebDriverAgentRunner 页面
- 在 Signing 菜单下勾选 Automatically manage signing,然后在 Team 处选择开发者账号
- 在标签栏点击 Bulid Settings,在 Packaging 菜单下修改 Product Bundle identifier,将 com.facebook.WebDriverAgentRunner 修改为 com.xxx.WebDriverAgentRunner
- USB 连接设备,XCODE 菜单栏选择 Product 标签
- 将 Scheme 选中项更改为 WebDriverAgentRunner
- 将 Destination 选中项更改为目标设备
- 选择 Test 进行安装测试
- WebDriverAgentLib 页面
package com.test;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.MobileBy;
import io.appium.java_client.ios.IOSDriver;
public class Appium {
public static void main(String[] args) throws Exception {
IOSDriver driver;
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("automationName", "XCUITest");// appium做自动化
// cap.setCapability("app", "C:\\software\\jrtt.ipa");//安装ipa
cap.setCapability("deviceName", "iphone8plus");// 设备名称
cap.setCapability("platformName", "iOS"); // 安卓自动化还是IOS自动化
cap.setCapability("platformVersion", "11.2.5"); //操作系统版本
cap.setCapability("udid", "c65d00a8cda9947953dac52e92071aa1481f23a2"); // 设备的udid
cap.setCapability("bundleId", "com.xxx.xxxx");// 被测app的bundledid
cap.setCapability("newCommandTimeout", "300"); // 没有新命令,appium30秒退出
driver = new IOSDriver(new URL("http://0.0.0.0:4723/wd/hub"), cap);// 把以上配置传到appium服务端并连接手机
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);// 隐式等待
// 通过xxx定位元素
driver.findElement(MobileBy.AccessibilityId("")).click();
driver.findElement(MobileBy.iOSNsPredicateString("")).click();
driver.findElement(MobileBy.xpath("")).click();
}
}
转载文章时务必注明原作者及原始链接,并注明「发表于 TesterHome 」,并不得对作品进行修改。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。