上一篇博客我给大家分享了运用appium+java+android实现自动化发微信的测试用例,今天我再给大家分享一下自动化发朋友圈的测试用例吧,由于基本原理都一样,所以只把代码贴出来,如果有疑问的话,可以看看我的前一篇博客
Appium +java+Android 三(使用appium实现自动化给朋友发微信的测试用例)
以下是我的实现代码
private AppiumDriver driver;
@BeforeClass
public void setUp() throws MalformedURLException {
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.BROWSER_NAME, "");
cap.setCapability("PlatformName", "Android");
cap.setCapability("deviceName", "RSY5LZ89F67SJZYT");
cap.setCapability("platformversion", "5.1");
cap.setCapability("appPackage", "com.tencent.mm");
cap.setCapability("appActivity", "com.tencent.mm.ui.LauncherUI");
cap.setCapability("appWaitActivity", "com.tencent.mm.ui.LauncherUI");
cap.setCapability("unicodeKeyboard", "True");// 使用Unicode输入法,默认 false
cap.setCapability("resetKeyboard", "True");// 在使用了unicode输入法测试结束后,重置输入法到原有状态。如果单独使用,将会被忽略。默认值 false
// 每次启动时覆盖session,否则第二次后运行会报错不能新建session
cap.setCapability("sessionOverride", true);
driver = new AndroidDriver(new URL("http://10.10.1.111:4723/wd/hub"), cap);
}
@Test
public void demo() throws InterruptedException {
try {
Thread.sleep(5000);
List<WebElement> list = driver.findElementsById("com.tencent.mm:id/c_x");// 通过驱动找元素
if (CollectionUtils.isNotEmpty(list)) {
// 找到第三个发现
WebElement target = list.get(2);// 发现
System.out.println(target.getText());
// WebElement target = getTarget(list);
if (target != null) {
target.click();// 点击发现
Thread.sleep(500);
}
List<WebElement> list1 = driver.findElementsById("android:id/title");
if (CollectionUtils.isNotEmpty(list1)) {
// 找到第2个框朋友圈
WebElement target1 = list1.get(1);// 朋友圈
System.out.println(target1.getText());
if (target1 != null) {
target1.click();// 点击进入朋友圈
Thread.sleep(500);
}
}
// 找到发朋友圈按钮
WebElement webElement3 = driver.findElementById("com.tencent.mm:id/g_");
if (webElement3 != null) {
System.out.println(webElement3.getText());
webElement3.click();// 点击相机的icon
Thread.sleep(500);
}
// 点击从相册选取
WebElement webElement4 = (WebElement) driver.findElementsById("com.tencent.mm:id/ga").get(1);
if (webElement4 != null) {
System.out.println(webElement4.getText());
webElement4.click();
Thread.sleep(500);
}
// 选择第一张照片
List<WebElement> list3 = driver.findElementsById("com.tencent.mm:id/bpl");
if (CollectionUtils.isNotEmpty(list3)) {
// WebElement target3 = list3.get(0);// 选择第一张照片
\\选择九张照片
for (int i = 0; i < 9; i++) {
WebElement target3 = list3.get(i);
if (target3 != null) {
System.out.println(target3.getText());
target3.click();// 点击选择照片
}
}
}
// 点击完成
WebElement webElement5 = driver.findElementById("com.tencent.mm:id/hd");
if (webElement5 != null) {
System.out.println(webElement5.getText());
webElement5.click();// 点击完成
Thread.sleep(500);
}
//这是朋友圈文字
driver.findElementById("com.tencent.mm:id/der").sendKeys("这是我的自动化脚本发送的第一条朋友圈,还是很开心");
Thread.sleep(500);
driver.findElementById("com.tencent.mm:id/hd").click();
}
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getStackTrace());
}
}
@AfterClass
public void tearDown() throws InterruptedException {
Thread.sleep(5000);
driver.quit();
}
}