アピウムの設置と使用(Java)
9584 ワード
以下の操作はSDK環境が必要です.Android Studioからダウンロードできます.
Android Studio公式サイト:http://www.android-studio.org/
環境変数をダウンロードして設定したら、コマンドラインでadbを入力して、設定が正しいかどうかを確認することができます.
アピウム:https://github.com/appium/appium
CNPMでApiumをインストールする
node.jsをダウンロードしてインストールしてnpmを使うことができます.
nodejs中国語ネット:http://nodejs.cn/
nodejsをダウンロードし終わったら、Windowsでコマンドライン(Winキー+R、cmdを入力)を開きます.
cnpmをインストールする
npm install-g cnpm--registry=https://registry.npm.taobao.org
cnpm install-g appum
命令行にAppumを入力すると起動できます.
はシミュレータを開く.
cmd(コマンドライン)を開いて、adb devicesを入力して接続が成功したか確認します.
入力:adb shell
入力:ロゴcat_grep Displayed
シミュレータは計算機に入り、コマンドラインでパケット名と起動のActivityを取得できます.
スタートIDE作成Maven項目
POM.xmlにapiumを導入する
ビュー(コントロール)をクリックして、右側に対応する属性を表示します.
今は4*9=スライド操作をしています.各ステップの後、スレッドは1秒眠っています.実行効果を確認しやすいです.
Case類では維持用例(データ)と断言のみを担当し、Page類ではコントロールの取得を担当しています.Base類は主に上に向かって抽出するいくつかの常用方法です.
下記のコードは簡単に実現しただけですので、多くのところが未整備です.実際の応用の中で、修正すべきところがたくさんあります.
コードは以下の通りです
Android Studio公式サイト:http://www.android-studio.org/
環境変数をダウンロードして設定したら、コマンドラインでadbを入力して、設定が正しいかどうかを確認することができます.
アピウム:https://github.com/appium/appium
CNPMでApiumをインストールする
node.jsをダウンロードしてインストールしてnpmを使うことができます.
nodejs中国語ネット:http://nodejs.cn/
nodejsをダウンロードし終わったら、Windowsでコマンドライン(Winキー+R、cmdを入力)を開きます.
cnpmをインストールする
npm install-g cnpm--registry=https://registry.npm.taobao.org
cnpm install-g appum
命令行にAppumを入力すると起動できます.
はシミュレータを開く.
cmd(コマンドライン)を開いて、adb devicesを入力して接続が成功したか確認します.
入力:adb shell
入力:ロゴcat_grep Displayed
シミュレータは計算機に入り、コマンドラインでパケット名と起動のActivityを取得できます.
スタートIDE作成Maven項目
POM.xmlにapiumを導入する
io.appium
java-client
7.2.0
Sdk\tools\binディレクトリの下で、uiatomatiorview.batを起動し、赤いエリアをクリックして、ページを更新することができます.ビュー(コントロール)をクリックして、右側に対応する属性を表示します.
今は4*9=スライド操作をしています.各ステップの後、スレッドは1秒眠っています.実行効果を確認しやすいです.
Case類では維持用例(データ)と断言のみを担当し、Page類ではコントロールの取得を担当しています.Base類は主に上に向かって抽出するいくつかの常用方法です.
下記のコードは簡単に実現しただけですので、多くのところが未整備です.実際の応用の中で、修正すべきところがたくさんあります.
コードは以下の通りです
package com.test.testcase;
import com.test.page.HomePage;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
public class CalculateTest {
HomePage homePage = new HomePage();
@BeforeAll
public static void beforeAll(){
HomePage.start();
}
@Test
public void test1(){
homePage.multiplication(4,9);
homePage.rightMenu(true); //
homePage.sleep(3);
homePage.rightMenu(false); //
homePage.sleep(1);
homePage.clear();//
}
}
package com.test.page;
import com.test.base.BasePage;
import io.appium.java_client.touch.WaitOptions;
import io.appium.java_client.touch.offset.PointOption;
import org.openqa.selenium.WebElement;
import java.time.Duration;
public class HomePage extends BasePage {
//
WebElement digit_1;
WebElement digit_2;
WebElement digit_3;
WebElement digit_4;
WebElement digit_5;
WebElement digit_6;
WebElement digit_7;
WebElement digit_8;
WebElement digit_9;
WebElement digit_0;
WebElement op_mul;
WebElement eq;
public void multiplication(int x , int y){
//
if(null == digit_0){
initButton();
}
clickButton(x);
sleep(1);
op_mul.click();
sleep(1);
clickButton(y);
sleep(1);
eq.click();
}
//
public void clear(){
driver.findElementById("clr").click();
}
//
public void rightMenu(boolean flag){
if(flag) {
touchAction.longPress(PointOption.point(1020, 1000));// x1020 y1000
touchAction.moveTo(PointOption.point(100, 1000)).release().perform(); // x100 y1000
touchAction.waitAction(WaitOptions.waitOptions(Duration.ofSeconds(1)));// 1
touchAction.cancel(); //
}else{
touchAction.longPress(PointOption.point(290, 1000));
touchAction.moveTo(PointOption.point(900, 1000)).release().perform();
touchAction.waitAction(WaitOptions.waitOptions(Duration.ofSeconds(1)));
touchAction.cancel(); //
}
}
public void clickButton(int i){
switch (i) {
case 0:
digit_0.click();
break;
case 1:
digit_1.click();
break;
case 2:
digit_2.click();
break;
case 3:
digit_3.click();
break;
case 4:
digit_4.click();
break;
case 5:
digit_5.click();
break;
case 6:
digit_6.click();
break;
case 7:
digit_7.click();
break;
case 8:
digit_8.click();
break;
case 9:
digit_9.click();
break;
}
}
public void initButton(){
digit_1 = driver.findElementById("digit_1");
digit_2 = driver.findElementById("digit_2");
digit_3 = driver.findElementById("digit_3");
digit_4 = driver.findElementById("digit_4");
digit_5 = driver.findElementById("digit_5");
digit_6 = driver.findElementById("digit_6");
digit_7 = driver.findElementById("digit_7");
digit_8 = driver.findElementById("digit_8");
digit_9 = driver.findElementById("digit_9");
digit_0 = driver.findElementById("digit_0");
op_mul = driver.findElementById("op_mul");
eq = driver.findElementById("eq");
}
}
package com.test.base;
import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
public class BasePage {
public static AndroidDriver driver;
public static Actions actions;
public static TouchAction touchAction;
public static JavascriptExecutor js;
public BasePage() {
}
//
public void sleep(int second){
try {
Thread.sleep(second * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// APP
public static void start() {
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("platformName", "Android");//
desiredCapabilities.setCapability("deviceName", "emulator-5554"); //
desiredCapabilities.setCapability("appPackage", "com.android.calculator2");//Packge
desiredCapabilities.setCapability("appActivity", "com.android.calculator2.Calculator"); // Activity
desiredCapabilities.setCapability("noReset", "true");
desiredCapabilities.setCapability("autoGrantPermissions", true); //
URL remoteUrl = null;
try {
// Appium
remoteUrl = new URL("http://localhost:4723/wd/hub");
} catch (MalformedURLException e) {
e.printStackTrace();
}
driver = new AndroidDriver(remoteUrl, desiredCapabilities);
// 5
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
actions = new Actions(driver);
touchAction = new TouchAction(driver);
}
}