QAUi系列指南 Appium-Java 初始化实例

Then · November 14, 2018 · 1243 hits

系列介绍

QAUi 系列阅读指南

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开发者账号,编辑相关项
    1. WebDriverAgentLib页面
      • 在Identity菜单下Bundel Identifier项,将com.facebook.wda.lib修改为com.xxx.wda.lib
      • 在Signing菜单下勾选Automatically manage signing,然后在Team处选择开发者账号
    2. WebDriverAgentRunner页面
      • 在Signing菜单下勾选Automatically manage signing,然后在Team处选择开发者账号
      • 在标签栏点击Bulid Settings,在Packaging菜单下修改Product Bundle identifier,将com.facebook.WebDriverAgentRunner修改为com.xxx.WebDriverAgentRunner
    3. USB连接设备,XCODE菜单栏选择Product标签
      • 将Scheme选中项更改为WebDriverAgentRunner
      • 将Destination选中项更改为目标设备
      • 选择Test进行安装测试
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();
}
}
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
No Reply at the moment.
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up