本文仅涉及方法,只供参考。
package com.mooctest;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.AndroidKeyCode;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.UnreachableBrowserException;
public class Main {
/**
* 所有和AppiumDriver相关的操作都必须写在该函数中
*
* @param driver
* @throws InterruptedException
*/
public void test(AppiumDriver driver) throws InterruptedException {
try {
Thread.sleep(6000); // 等待6s,待应用完全启动
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS); // 设置尝试定位控件的最长时间为8s,也就是最多尝试8s
/*
* 余下的测试逻辑请按照题目要求进行编写
*/
// 活动
driver.findElementById("android:id/up").click();
driver.findElementByXPath("//android.widget.TextView[@text='活动']").click();
driver.findElementByXPath("//android.widget.TextView[@content-desc=\"搜索\"]").click();
driver.findElementById("android:id/button1").click();
driver.findElementByXPath(" //android.widget.TextView[@content-desc=\"幻灯片\"]").click();
driver.navigate().back();
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"模式\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"网格\"]").click();
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"模式\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"列表\"]").click();
// WiFi快船
driver.findElementById("android:id/up").click();
driver.findElementByXPath("//android.widget.TextView[@text='WiFi 快传']").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"传输列表\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"发送\"]").click();
driver.findElementById("com.alensw.PicFolder:id/add").click();
driver.navigate().back();
driver.findElementById("com.alensw.PicFolder:id/clear").click();
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"重命名\"]").click();
driver.navigate().back();
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"分享:快图浏览\"]").click();
driver.navigate().back();
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath(
"/hierarchy/android.widget.FrameLayout/android.widget.ListView/android.widget.LinearLayout[3]").click();
driver.navigate().back();
// 500px
driver.findElementById("android:id/up").click();
driver.findElementByXPath("//android.widget.TextView[@text='500px']").click();
driver.navigate().back();
// 添加
driver.findElementById("android:id/up").click();
driver.findElementByXPath("//android.widget.TextView[@text='添加']").click();
driver.navigate().back();
// 贴士
driver.findElementById("android:id/up").click();
driver.findElementByXPath("//android.widget.TextView[@text='贴士与反馈']").click();
driver.navigate().back();
// 评价我们
driver.findElementById("android:id/up").click();
driver.findElementByXPath("//android.widget.TextView[@text='评价我们']").click();
driver.navigate().back();
// 关于
driver.findElementById("android:id/up").click();
driver.findElementByXPath("//android.widget.TextView[@text='关于']").click();
driver.navigate().back();
// 相册
driver.findElementById("android:id/up").click();
driver.findElementByXPath("//android.widget.TextView[@text='相册']").click();
// 相册==搜索
driver.findElementByXPath("//android.widget.TextView[@content-desc=\"搜索\"]").click();
driver.findElementById("android:id/button1").click();
driver.findElementByXPath("//android.widget.TextView[@content-desc=\"搜索\"]").click();
driver.findElementById("android:id/button2").click();
// 相册==相机相册
driver.findElementByXPath("//android.widget.TextView[@content-desc=\"相机照片\"]").click();
// 首页历史
driver.findElementById("com.alensw.PicFolder:id/recent_btn_img").click();
driver.findElementById("com.alensw.PicFolder:id/recent_photos_take_photo_btn").click();
driver.findElementById("com.alensw.PicFolder:id/menu_btn_iv").click();
driver.findElementById("com.alensw.PicFolder:id/tv_content").click();
// 首页历史 --设置
// driver.findElementById("com.alensw.PicFolder:id/help").click();
// Thread.sleep(800);
// driver.navigate().back();
// 首页历史 --设置
driver.findElementByXPath("//android.widget.TextView[@text='包含文件夹']").click();
driver.navigate().back();
driver.findElementByXPath("//android.widget.TextView[@text='排除文件夹']").click();
driver.navigate().back();
// 首页历史 --设置--默认排序模式
driver.findElementByXPath("//android.widget.TextView[@text='默认排序模式']").click();
driver.findElementByXPath("//android.widget.TextView[@text='按时间']").click();
driver.findElementByXPath("//android.widget.TextView[@text='默认排序模式']").click();
driver.findElementByXPath("//android.widget.TextView[@text='按名称']").click();
driver.findElementByXPath("//android.widget.TextView[@text='默认排序模式']").click();
driver.findElementByXPath("//android.widget.TextView[@text='按拍摄时间']").click();
driver.findElementByXPath("//android.widget.TextView[@text='默认排序模式']").click();
driver.findElementByXPath("//android.widget.TextView[@text='按大小']").click();
driver.findElementByXPath("//android.widget.TextView[@text='默认排序模式']").click();
driver.findElementByXPath("//android.widget.TextView[@text='默认']").click();
// 首页历史 --设置--单选
driver.findElementByXPath("//android.widget.TextView[@text='隐藏面板']").click();
driver.findElementByXPath("//android.widget.TextView[@text='隐藏最近照片功能']").click();
driver.findElementByXPath("//android.widget.TextView[@text='隐藏顶部状态栏']").click();
driver.findElementByXPath("//android.widget.TextView[@text='横向滚动缩略图']").click();
driver.findElementByXPath("//android.widget.TextView[@text='裁剪缩略图成正方形']").click();
driver.findElementByXPath("//android.widget.TextView[@text='数值化文件名顺序']").click();
driver.findElementByXPath("//android.widget.TextView[@text='打开最后的文件夹']").click();
driver.navigate().back();
Thread.sleep(800);
// 相册=更多选项==模式
//
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"模式\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"层叠\"]").click();
//
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"模式\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"网格\"]").click();
//
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"模式\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"列表\"]").click();
//
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"模式\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"文件浏览\"]").click();
//
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"模式\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"默认\"]").click();
// 相册=更多选项==排序
//
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"排序\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"按时间\"]").click();
//
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"排序\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"按路径\"]").click();
//
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"排序\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"按名称\"]").click();
// 相册=更多选项==添加
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"添加\"]").click();
driver.findElementById("android:id/button1").click();
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"添加\"]").click();
driver.findElementById("android:id/button2").click();
// 相册=更多选项==显示隐藏
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"显示隐藏项\"]").click();
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"不显示隐藏项\"]").click();
// 相册=更多选项==WiFi 快传
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"WiFi 快传\"]").click();
driver.navigate().back();
// 相册=更多选项==设置
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"设置\"]").click();
driver.navigate().back();
// 相册=更多选项==贴士
driver.findElementByXPath("//android.widget.ImageButton[@content-desc=\"更多选项\"]").click();
driver.findElementByXPath("//android.widget.TextView[@text=\"贴士与反馈\"]").click();
driver.navigate().back();
// 设置
driver.findElementById("android:id/up").click();
driver.findElementByXPath("//android.widget.TextView[@text='设置']").click();
// 设置--详情
// 设置--详情--常规
driver.findElementByXPath("//android.widget.TextView[@text='常规']").click();
driver.findElementByXPath("//android.widget.TextView[@text='包含视频文件']").click();
driver.findElementByXPath("//android.widget.TextView[@text='自动黑背景']").click();
driver.findElementByXPath("//android.widget.TextView[@text='分行控制栏']").click();
driver.findElementByXPath("//android.widget.TextView[@text='设为默认图库']").click();
driver.navigate().back();
driver.findElementByXPath("//android.widget.TextView[@text='主题']").click();
driver.findElementByXPath(
"/hierarchy/android.widget.FrameLayout/android.view.View[1]/android.widget.FrameLayout[2]/android.widget.GridView/android.widget.FrameLayout[2]/android.widget.ImageView")
.click();
driver.navigate().back();
// 设置--详情--常规
driver.findElementByXPath("//android.widget.TextView[@text='浏览']").click();
driver.navigate().back();
// 设置--详情--常规
driver.findElementByXPath("//android.widget.TextView[@text='查看']").click();
driver.findElementByXPath("//android.widget.TextView[@text='屏幕显示方向']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='使用方向传感器']").click();
driver.findElementByXPath("//android.widget.TextView[@text='屏幕显示方向']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='根据图像尺寸']").click();
driver.findElementByXPath("//android.widget.TextView[@text='屏幕显示方向']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='根据系统设置']").click();
driver.findElementByXPath("//android.widget.TextView[@text='屏幕调到最亮']").click();
driver.findElementByXPath("//android.widget.TextView[@text='自动隐藏虚拟按键']").click();
driver.findElementByXPath("//android.widget.TextView[@text='单击进行缩放']").click();
driver.findElementByXPath("//android.widget.TextView[@text='强制输出真彩色']").click();
driver.findElementByXPath("//android.widget.TextView[@text='网格图案背景']").click();
driver.findElementByXPath("//android.widget.TextView[@text='在屏幕底部显示']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='详情']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='缩放按钮']").click();
driver.findElementById("android:id/button1").click();
driver.navigate().back();
// 设置--详情--幻灯片
driver.findElementByXPath("//android.widget.TextView[@text='幻灯片']").click();
// 设置--详情--幻灯片---过渡动画
driver.findElementByXPath("//android.widget.TextView[@text='过渡动画']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='渐隐']").click();
driver.findElementByXPath("//android.widget.TextView[@text='过渡动画']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='平移']").click();
driver.findElementByXPath("//android.widget.TextView[@text='过渡动画']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='翻转']").click();
driver.findElementByXPath("//android.widget.TextView[@text='过渡动画']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='旋转']").click();
driver.findElementByXPath("//android.widget.TextView[@text='过渡动画']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='卡片']").click();
driver.findElementByXPath("//android.widget.TextView[@text='过渡动画']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='随机']").click();
// 设置--详情--幻灯片--播放间隔
driver.findElementByXPath("//android.widget.TextView[@text='播放间隔']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='3']").click();
driver.findElementByXPath("//android.widget.TextView[@text='播放间隔']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='5']").click();
driver.findElementByXPath("//android.widget.TextView[@text='播放间隔']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='10']").click();
driver.findElementByXPath("//android.widget.TextView[@text='播放间隔']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='30']").click();
driver.findElementByXPath("//android.widget.TextView[@text='播放间隔']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='60']").click();
driver.findElementByXPath("//android.widget.TextView[@text='播放间隔']").click();
driver.findElementByXPath("//android.widget.CheckedTextView[@text='自定义…']").click();
driver.findElementByXPath("//android.widget.EditText[@text='3']").sendKeys("3");
driver.findElementById("android:id/button1").click();
// 设置--详情--幻灯片
driver.findElementByXPath("//android.widget.TextView[@text='随机播放']").click();
driver.findElementByXPath("//android.widget.TextView[@text='逐渐放大效果']").click();
driver.navigate().back();
// 设置--详情--添加
driver.findElementByXPath("//android.widget.TextView[@text='其他云备份']").click();
driver.findElementByXPath("//android.widget.TextView[@text='添加']").click();
driver.navigate().back();
driver.findElementByXPath("//android.widget.TextView[@text='包含视频文件']").click();
driver.findElementByXPath("//android.widget.TextView[@text='仅通过 WiFi']").click();
driver.findElementById("android:id/button1").click();
driver.findElementByXPath("//android.widget.TextView[@text='仅限充电时']").click();
driver.navigate().back();
// 设置--详情--常规
driver.findElementByXPath("//android.widget.TextView[@text='缓存']").click();
driver.findElementByXPath("//android.widget.TextView[@text='缓存全屏预览图']").click();
driver.findElementByXPath("//android.widget.TextView[@text='清除全屏预览图']").click();
driver.findElementById("android:id/button2").click();
driver.navigate().back();
// 设置--详情--常规
driver.findElementByXPath("//android.widget.TextView[@text='安全']").click();
driver.findElementByXPath("//android.widget.TextView[@text='通过密码访问']").click();
driver.findElementByXPath("//android.widget.TextView[@text='数字']").click();
driver.findElementByXPath("//android.widget.TextView[@text='1']").click();
driver.findElementByXPath("//android.widget.TextView[@text='2']").click();
driver.findElementByXPath("//android.widget.TextView[@text='3']").click();
driver.findElementByXPath("//android.widget.TextView[@text='4']").click();
driver.findElementByXPath("//android.widget.TextView[@text='5']").click();
driver.findElementByXPath("//android.widget.TextView[@text='✓']").click();
driver.findElementByXPath("//android.widget.TextView[@text='1']").click();
driver.findElementByXPath("//android.widget.TextView[@text='2']").click();
driver.findElementByXPath("//android.widget.TextView[@text='3']").click();
driver.findElementByXPath("//android.widget.TextView[@text='4']").click();
driver.findElementByXPath("//android.widget.TextView[@text='5']").click();
driver.findElementByXPath("//android.widget.TextView[@text='✓']").click();
driver.findElementById("android:id/button1").click();
}
/**
* AppiumDriver的初始化逻辑必须写在该函数中
*
* @return
*/
public AppiumDriver initAppiumTest() {
AppiumDriver driver = null;
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "apk");
File app = new File(appDir, "PicFolder.apk");
// 设置自动化相关参数
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("browserName", "");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "Android Emulator");
capabilities.setCapability("appPackage", "com.alensw.PicFolder");
capabilities.setCapability("appActivity", "com.alensw.PicFolder.GalleryActivity");
capabilities.setCapability("noSign", "true");
// 设置apk路径
capabilities.setCapability("app", app.getAbsolutePath());
// 设置使用unicode键盘,支持输入中文和特殊字符
capabilities.setCapability("unicodeKeyboard", "true");
// 设置用例执行完成后重置键盘
capabilities.setCapability("resetKeyboard", "true");
// 初始化
try {
driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return driver;
}
public void start() {
try {
test(initAppiumTest());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
Main main = new Main();
main.start();
}
}