专栏文章 Appium-Java 初始化实例

Then · 2018年11月14日 · 2085 次阅读

系列介绍

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();
    }
}
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册