从网上复制粘贴来的,不用安装apk,直接连接计算器
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.Point;
import org.openqa.selenium.Rectangle;
import org.openqa.selenium.WebDriverException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.android.AndroidDriver;
import java.io.File;
import java.net.URL;
import java.util.List;
public class CalculatorTest {
private AndroidDriver<WebElement> driver;
public void setUp() throws Exception {
//设置自动化相关参数
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "Android Emulator");
//设置安卓系统版本
capabilities.setCapability("platformVersion", "4.3");
//设置app的主包名和主类名
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity", ".Calculator");
//初始化
driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
public void inputNumbers()
{
WebElement wb = driver.findElementByName("1");
wb.click();
driver.findElementByName("+").click();
driver.findElementByName("1").click();
driver.findElementByName("=").click();
String str = driver.findElementByClassName("android.widget.EditText").getText();
System.out.println("Result is " + str);
}
public void tearDown() throws Exception {
driver.quit();
}
}
20170108更新:连接远程server,连接一个API17以下的手机执行操作
目前运行之后报错:
apk does not have INTERNET permissions. Selendroid needs internet permission to proceed, please check if you have in your AndroidManifest.xml)
//设置自动化相关参数
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("platformName", "Android");
//adb devices查到的设备名
capabilities.setCapability("deviceName", "HC26LMG08037");
//API17以下使用selendroid模式
capabilities.setCapability("automationName", "Selendroid");
//设置安卓系统版本
capabilities.setCapability("platformVersion", "4.0");
//设置app的主包名和主类名。selendroid模式需使用“app方式”启动
//File地址为在server机器上的位置,用client的位置提示找不到
File app = new File("F:\\CODE\\安装文件\\appium\\", "ContactManager.apk");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "com.example.android.contactmanager");
capabilities.setCapability("appActivity", ".ContactManager");
//初始化,url中是server的IP,端口号不能少,缺少报错
driver = new AndroidDriver<>(new URL("http://192.168.1.11:4723/wd/hub"), capabilities);