java appium api
Appium中部分api的使用方法,有需要的朋友可以参考下。
使用的语言是java,appium的版本是1.3.4,java-client的版本是java-client-2.1.0,建议多参考java-client-2.1.0-javadoc。
1.使用AndroidDriver,其已经继承了AppiumDriver
- private AndroidDriver driver;
- @Before
- public 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);
- }
- @After
- public 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));
7.
- //启动其他应用,跨APP
- driver.startActivity("com.android.camera", ".CameraLauncher");
8.
- //自动滑动列表
- driver.scrollTo("text");
- //或者
- driver.scrollToExact("text");
9.
- //安装APP
- driver.installApp(appPath);
- //判断应用是否已安装
- driver.isAppInstalled("package name");
10.
- //拖动相机图标至日历图标位置
- new TouchAction(driver).longPress(driver.findElementByName("相机"))
- .moveTo(driver.findElementByName("日历")).release().perform();
11.
- //锁屏
- driver.lockScreen(2);
- //判断是否锁屏
- driver.isLocked();
12.
- //发送按键事件
- driver.sendKeyEvent(AndroidKeyCode.HOME);
13.
- <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);
java appium api的更多相关文章
- (转载)中文Appium API 文档
该文档是Testerhome官方翻译的源地址:https://github.com/appium/appium/tree/master/docs/cn官方网站上的:http://appium.io/s ...
- 中文Appium API 文档
该文档是Testerhome官方翻译的源地址:https://github.com/appium/appium/tree/master/docs/cn官方网站上的:http://appium.io/s ...
- appium(6)-parts of appium api
parts of appium api Lock Lock the screen.//锁屏. // java driver.lockScreen(3); // objective c [driver ...
- 关于c#调用java中间件api的几个问题
由于项目需要,做的c#客户端数据库连接串首先肯定不能写死的程序里(数据库很容易被攻击,我们的项目半年改了几次密码...) 放置在配置文件内,都可以看得到,最开始想法将配置文件加密,老师说加密过的文件还 ...
- Kylin Java RESTful API
最近在做大数据方面的开发, 学习研究了一段时间的kylin系统, 对于前端开发需要使用 RESTful API ,但是官网并没有提供详细的Java API. 经过几天的看文档,最终写出了 Java ...
- Java 2D API - 2. Graphics 入门
Java 2D API强大而复杂,不过大多时候我们只需使用java.awt.Graphcis类的部分功能.下面的内容将覆盖大多数的常见应用. Graphics 类中的方法大致可以分为两类: Draw ...
- Java 2D API - 1. 基本概念
Java 2D API扩展AWT包,对二维图形.文本及成像功能提供了支持,可用于开发复杂的界面.绘图软件和图像编辑器.Java 2D对象位于用户坐标空间(User coordinate space), ...
- libj 0.8.2 发布,Java/JavaScript API 的 C++ 实现
libj 0.8.2 增加了一些新的字符串相关的方法. libj 是一个跨平台的运行库,相当于提供了类似 Java/JavaScript API.libj 的内存管理是自动的,基于 shared_pt ...
- Android使用Java Mail API发送邮件
最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交. ...
随机推荐
- Windows Phone 四、控件模版
控件模版的概念 Windows Phone中每一个控件都有一个默认的模版,用于描述控件的内部组成结构和外观样式 相对于原本的样式外观操作,自定义模版的可自定义性更强 最基本的重写控件模版 <Gr ...
- 敏捷项目开源管理软件ScrumBasic(2)- 多项目支持
1.加入Project对象模型 public class Project { [Key] [MaxLength(32)] public string ID { get; set; } public s ...
- Delphi 调用C# DLL(包含委托)
例子 C# Dll: using System; using System.Collections.Generic; using System.Text; using System.Diagnosti ...
- 解决VS2015启动时Package manager console崩溃的问题 - Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope
安装VS2015,启动以后,Package manager console崩溃,错误信息如下: Windows PowerShell updated your execution policy suc ...
- 异步记载数据时page是怎么计算的
最近一直在完善基于Busybox做的ARM Linux的根文件系统,由于busybox是一个精简的指令集组成的简单文件系统,其优点就是极精简,满足了Linux基本的启动需求,由于它几乎没有什么后台服务 ...
- ORA-1034 ORACLE not available (转)
http://blog.csdn.net/onlyone_htliu/article/details/6075150 前言 每一个DBA在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ORA- ...
- Java中ProcessBuilder应用实例
系列说明 浅析Java.lang.Runtime类 浅析Java.lang.Process类 浅析Java.lang.ProcessBuilder类 可以使用java中的ProcessBuilder执 ...
- &和&&的区别
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false. ...
- RK3288 GPIO 输出问题
cat /sys/kernel/debug/gpio cat /proc/bus/input/devices #define GPIO_BANK0 (0 << R ...
- mysql基本语句
mysql -u root -p; 登录数据库 show databases; 展示数据库 show tables; 展示表 desc messages; 查看messages表的结构 drop da ...