
Appium中部分api的使用方法
发布日期:2021-05-09 05:00:22
浏览次数:15
分类:博客文章
本文共 2629 字,大约阅读时间需要 8 分钟。
使用的语言是java,appium的版本是1.3.4,java-client的版本是java-client-2.1.0,建议多参考java-client-2.1.0-javadoc。
1.使用Driver,其已经继承了AppiumDriver
private AndroidDriver driver; @Beforepublic void setUp() throws Exception { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "Android Emulator"); capabilities.setCapability("platformVersion", "4.4"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("appPackage", "com.android.settings"); capabilities.setCapability("appActivity", ".Settings"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);} @Afterpublic void tearDown() throws Exception { driver.quit();}
2.截屏并保存至本地
//截屏并保存至本地File screen = driver.getScreenshotAs(OutputType.FILE);File screenFile = new File("d:\\screen.png");try { FileUtils.copyFile(screen, screenFile); //commons-io-2.0.1.jar中的api} catch (IOException e) { e.printStackTrace();}
3.push文件、pull文件
File file = new File("d:\\test.txt"); //test.txt内容为"test"String content = null;try { content = FileUtils.readFileToString(file);} catch (IOException e) { e.printStackTrace();} byte[] data = Base64.encodeBase64(content.getBytes());driver.pushFile("sdcard/test.txt", data); byte[] resultDate = driver.pullFile("sdcard/test.txt");System.out.println(new String(Base64.decodeBase64(resultDate))); //打印结果为"test"
4.
//获取当前界面的activity,可用于断言是否跳转到预期的activity
driver.currentActivity();
5.
//打开通知栏界面
driver.openNotifications();
6.//获取网络状态
int status = driver.getNetworkConnection().value;System.out.println(status); //设置网络状态driver.setNetworkConnection(new NetworkConnectionSetting(status));//或者driver.setNetworkConnection(new NetworkConnectionSetting(false, true, false));
//启动其他应用,跨APPdriver.startActivity("com.android.camera", ".CameraLauncher");//自动滑动列表driver.scrollTo("text");//或者driver.scrollToExact("text"); //安装APPdriver.installApp(appPath); //判断应用是否已安装driver.isAppInstalled("package name"); //拖动相机图标至日历图标位置new TouchAction(driver).longPress(driver.findElementByName("相机")).moveTo(driver.findElementByName("日历")).release().perform(); //锁屏driver.lockScreen(2); //判断是否锁屏driver.isLocked();
//发送按键事件
driver.sendKeyEvent(AndroidKeyCode.HOME);
<span style=
"color:#ff0000;"
> </span>
//通过uiautomator定位clickable属性为true的元素并点击
driver.findElementByAndroidUIAutomator(
"new UiSelector().clickable(true)"
).click();
//相同属性的元素使用List存放
List<webelement> elements = driver.findElementsByClassName(
"class name"
);
elements.get(
0
).click();
//点击List中的第一个元素
//tap,点击元素位置
driver.tap(
1
, driver.findElementByName(
"日期和时间"
),
0
);</webelement>
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月14日 11时57分31秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
快服务流量之争:如何在快服务中占领一席之地
2021-05-09
Spring Boot 2.x基础教程:构建RESTful API与单元测试
2021-05-09
WinUI 3 Preview 3 发布了,再一次试试它的性能
2021-05-09
dojo/request模块整体架构解析
2021-05-09
互联网App应用程序测试流程及测试总结
2021-05-09
如何使用google搜索?
2021-05-09
IntelliJ IDEA 中,项目文件右键菜单没有svn选项解决办法
2021-05-09
IDEA 调试Java代码的两个技巧
2021-05-09
深入理解JavaScript函数
2021-05-09
(在模仿中精进数据可视化07)星球研究所大坝分布可视化
2021-05-09
(数据科学学习手札27)sklearn数据集分割方法汇总
2021-05-09
从零开始学安全(十六)● Linux vim命令
2021-05-09
阿里巴巴Json工具-Fastjson教程
2021-05-09
Spring Cloud Gateway - 快速开始
2021-05-09
Java对象转JSON时如何动态的增删改查属性
2021-05-09
Python 面向对象进阶
2021-05-09
Linux常用统计命令之wc
2021-05-09
shell脚本里使用echo输出颜色
2021-05-09
并发编程——IO模型详解
2021-05-09