appium學習筆記(環境安裝配置,設備啓動)

 

Android SDK下載及配置

  • 下載地址java

  • 下載後解壓縮,打開SDK Manager.exe,下載適當版本的Android包node

  • 配置環境變量:目錄下的tools路徑(含uiautomatorviewer工具)以及platform-tools路徑(含adb工具)添加到path變量中,以便後續命令行運行指令android

  • 能夠打開AVD Manager配置模擬器,也能夠使用真機spring

  • 命令行下運行 adb devices 查看當前鏈接的Android設備,若是遇到提示adb server版本不一致問題,多是端口被佔用引發的,能夠看下電腦是否安裝了360手機助手之類的程序;若是遇到設備unauthorized,從新連一下真機或者[ 將手機設置->輔助功能->開發者模式->撤銷usb調試受權,從新打開開發者模式 ],沒問題的話能夠看到相似下面這種信息chrome

    C:\Users\suneee>adb devices
    List of devices attached
    d2ddc2a4        device

     

 

Appium Server安裝

  • 下載地址shell

  • 一直點擊下一步,安裝完成後配置環境變量,把安裝目錄Appium下的node_modules\.bin路徑添加到path變量中app

  • 命令行下運行appium-doctor,發現提示Node模塊不能識別,此時把Appium目錄也添加到path變量中(也能夠安裝配置node.js),再次運行appium-doctor,能夠看到如下信息,說明appium server須要的環境已經配置完成工具

    C:\Users\suneee>appium-doctor
    Running Android Checks
    ✔ ANDROID_HOME is set to "E:\wangjz\Software\android-sdk_r24.4.1"
    ✔ JAVA_HOME is set to "C:\Program Files\Java\jdk1.8.0_131."
    ✔ ADB exists at E:\wangjz\Software\android-sdk_r24.4.1\platform-tools\adb.exe
    ✔ Android exists at E:\wangjz\Software\android-sdk_r24.4.1\tools\android.bat
    ✔ Emulator exists at E:\wangjz\Software\android-sdk_r24.4.1\tools\emulator.exe
    ✔ Android Checks were successful.
    ✔ All Checks were successful

     注:能夠看到檢測了ANDROID_HOME和JAVA_HOME變量,配置的時候把SDK和JDK的一級目錄配置到對應的ANDROID_HOME和JAVA_HOME變量便可測試

     

  • 運行Appium.exe,能夠配置一些參數,點三角形圖標啓動服務

   啓動中若是遇到 main.js: error: argument "--app": Expected one argument. null 錯誤,注意Application Path未設置內容時不要勾選ui

        

 

Appium java-client 安裝

Maven項目下pom.xml中添加以下依賴便可

<!-- https://mvnrepository.com/artifact/io.appium/java-client -->
        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>6.1.0</version>
        </dependency>

 

UI元素定位信息

設備鏈接成功後,命令行運行uiautomatorviewer,打開UI Automator Viewer工具,點擊左上角工具欄手機圖標,能夠獲取到當前設備頁面了,工具上能夠看到元素的詳情。

PS:對於hybrid app,網頁元素的定位要經過chrome的devices來定位

 

Demo

測試教程網上找了個例子,運行便可看到效果

import org.openqa.selenium.*;
import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.springframework.util.Assert;

import java.net.MalformedURLException;
import java.net.URL;


public class AppiumDemo {

    public static void main(String[] args) throws MalformedURLException, InterruptedException {

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "Android Emulator");
        capabilities.setCapability("automationName", "Appium");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("platformVersion", "6.0");
        capabilities.setCapability("appPackage", "com.android.calculator2");
        capabilities.setCapability("appActivity", ".Calculator");

        AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

        driver.findElement(By.name("1")).click();
        driver.findElement(By.name("5")).click();
        driver.findElement(By.name("9")).click();
        driver.findElement(By.name("刪除")).click();
        driver.findElement(By.name("+")).click();
        driver.findElement(By.name("6")).click();
        driver.findElement(By.name("=")).click();
        Thread.sleep(2000);

        String result = driver.findElement(By.className("android.widget.EditText")).getText();
        Assert.isTrue(Integer.parseInt(result) == 21,"OK");
        System.out.println(result);

        driver.quit();
    }

}

 其中能夠運行 adb shell dumpsys activity activities>log.txt(設備上須要先打開你的app)去查看 appPackage 、 appActivity的值,以下圖「/」前的是appPackage,後面是appActivity

相關文章
相關標籤/搜索