Appium +java+Android 三(使用appium实现自动化给朋友发微信的测试用例)

自动化给朋友发微信

在上篇和上上篇博客中,我已经搭建好了环境和编写了第一个测试用例,这个发送朋友圈和给朋友发消息是我自己觉得有意思去摸索的,大家还觉得什么有意思也可以自己写一些。
其实用自动化控制自动给好友发微信与前面自动化控制拨号的思路是一样的,但是就是实现更加麻烦一些,上一篇实现自动化拨号的博客在这
Appium+java+Android二(uiautomatorviewer定位手机页面元素+用Java编写自动化测试用例)
1.首先打开UI Automator Viewer 对页面进行定位
定位每个对话框元素的resource·-id
Appium +java+Android 三(使用appium实现自动化给朋友发微信的测试用例)_第1张图片
定位打开对话框的元素id
Appium +java+Android 三(使用appium实现自动化给朋友发微信的测试用例)_第2张图片
定义发送按钮元素的resource-id
Appium +java+Android 三(使用appium实现自动化给朋友发微信的测试用例)_第3张图片
该定位的元素都定位好了的话,可以进行测试用例的编写
我把我的测试代码贴上来

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", "RSY5LZ89F67SJZYT"); //指定测试机的ID,通过adb命令`adb devices`获取
    cap.setCapability("platformVersion", "5.1");

    //将上面获取到的包名和Activity名设置为值
    cap.setCapability("appPackage", "com.tencent.mm");
    cap.setCapability("appActivity", "com.tencent.mm.ui.LauncherUI");

    //A new session could not be created的解决方法
    cap.setCapability("appWaitActivity", "com.tencent.mm.ui.LauncherUI");
    cap.setCapability("unicodeKeyboard", "True");
    cap.setCapability("resetKeyboard", "True");
    //每次启动时覆盖session,否则第二次后运行会报错不能新建session
    cap.setCapability("sessionOverride", true);

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


}

@AfterClass
public void tearDown() throws Exception {
    Thread.sleep(5000);
    driver.quit();
}

@Test
public void apiDemo() throws InterruptedException, IOException {
	Thread.sleep(5000);
    List list = driver.findElementsById("com.tencent.mm:id/apt");//这就是通过驱动找元素(定位到微信页面上的每一个聊天框,因为每个框的id是一样的)
    int width = driver.manage().window().getSize().width;
    int height = driver.manage().window().getSize().height;
        //找到第三个对话框
        WebElement target =list.get(2);//找到第三个对话框,从0开始第2个就是
        if (target != null) {
            target.click();//点击进入某某某的对话框
            Thread.sleep(500);
            //点击打开对话框的输入框
            driver.findElementById("com.tencent.mm:id/aa_").click();
           // driver.findElementById("com.tencent.mm:id/aa_").click();
            driver.findElementById("com.tencent.mm:id/c_x").sendKeys("这是我的测试脚本发送的信息");//这个是你要发送的消息
            Thread.sleep(100);
            driver.findElementById("com.tencent.mm:id/aah").click();//这个是点击发送按钮
        } else {
            driver.swipe(width / 2, height * 3 / 4, width / 2, height / 4, 800);
            Thread.sleep(100);
            list = driver.findElementsById("com.tencent.mm:id/apt");
        }
}

WebElement getTarget(List list) throws InterruptedException {
    for (WebElement w : list) {
    	System.out.println(w.getText());
        if (w.getText().contains("[图片]")) {
            return w;
        }
    }
    return null;
}    }

下一篇我会写用java代码实现自动化发朋友圈

你可能感兴趣的:(appium自动化)