網上有比較多相關教程,自己寫一遍,加深下印象。
環境搭建
據說,很多人都被繁瑣的環境搭建給嚇到了。
是的,確實,繁瑣。
node.js
cmd輸入node -v,出現下圖說明成功。
JDK
cmd輸入java -version,出現下圖說明成功。
Android SDK
cmd輸入adb,出現下圖說明成功。
Appium Desktop
Maven
cmd輸入mvn -version,出現下圖說明成功。
IntelliJ IDEA
安卓模擬器
把Android SDK目錄下\platform-tools的adb.exe拷貝
打開Nox\bin目錄
粘貼替換adb.exe
打開模擬器
cmd輸入adb connect 127.0.0.1:62001
再輸入adb devices
有道計算器
下載后,apk文件存放在某目錄下即可。
將apk文件直接拖入安卓模擬器中。
至此,環境搭建完畢,共安裝了8個程序。
實現步驟
打開IntelliJ
創建maven項目
點擊ok后,復制下面代碼到pom.xm中
<dependencies>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.2</version>
</dependency>
</dependencies>
復制粘貼下面代碼
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import java.net.URL;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
public class AppDemo {
private AppiumDriver driver;
@BeforeClass
public void setup() throws Exception {
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.BROWSER_NAME, "");
cap.setCapability("platformName", "Android"); //指定測試平台
cap.setCapability("deviceName", "127.0.0.1:62001"); //指定測試機的ID,通過adb命令`adb devices`獲取
cap.setCapability("platformVersion", "5.1.1");
//將上面獲取到的包名和Activity名設置為值
cap.setCapability("appPackage", "com.youdao.calculator");
cap.setCapability("appActivity", "com.youdao.calculator.activities.MainActivity");
// //A new session could not be created的解決方法
// cap.setCapability("appWaitActivity", "com.meizu.flyme.calculator.Calculator");
// //每次啟動時覆蓋session,否則第二次后運行會報錯不能新建session
// cap.setCapability("sessionOverride", true);
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
}
@Test
public void plus() throws Exception {
Thread.sleep(3000);
int width = driver.manage().window().getSize().width;
int height = driver.manage().window().getSize().height;
int x0 = (int)(width * 0.8); // 起始x坐標
int x1 = (int)(height * 0.2); // 終止x坐標
int y = (int)(height * 0.5); // y坐標
for (int i=0; i<5; i++) {
driver.swipe(x0, y, x1, y, 500);
Thread.sleep(1000);
}
driver.findElementById("com.youdao.calculator:id/guide_button").click();
for (int i=0; i<6; i++) {
driver.findElementByXPath("//android.webkit.WebView[@text='Mathbot Editor']").click();
Thread.sleep(1000);
}
String btn_xpath = "//*[@resource-id='com.youdao.calculator:id/view_pager_keyboard']/android.widget.GridView/android.widget.FrameLayout[%d]/android.widget.FrameLayout";
driver.findElementByXPath(String.format(btn_xpath, 7)).click();
driver.findElementByXPath(String.format(btn_xpath, 10)).click();
driver.findElementByXPath(String.format(btn_xpath, 8)).click();
Thread.sleep(3000);
}
@AfterClass
public void tearDown() throws Exception {
driver.quit();
}
}
文件右鍵run
然后可以看到腳本在跑了
打開安卓模擬器
一會就看到
計算器app在自己動了!