appium 测试使用的API

时间:2022-12-07 17:57:17

appium 测试使用的API:

模拟操作类

driver.runAppInBackground(5); //将当前活跃的应用放在后台运行
driver.hideKeyboard(); //隐藏键盘
driver.lockDevice(); //锁屏
driver.openNotifications(); //打开Android的下拉通知栏
driver.isAppInstalled(“com.example.android.apis”) //判断应用是否安装
driver.installApp(“path/to/my.apk”) //安装应用
driver.removeApp(“com.example.android.apis”) //卸载应用
driver.closeApp() //关闭App
driver.getContextHandles() //可用上下文,context可以理解为可进入的窗口,如果是native则为native_app,如果是webview为对应webview;
driver.context(); //设置上下文 (context),对hybrid app会用到
driver.getAppStringMap(); //获取应用的字符串
driver.pressKeyCode(AndroidKeyCode.HOME); //给设备发送一个按键事件,所有键盘按键值可参考AndroidKeyCode类
driver.pullFile(“Library/AddressBook/AddressBook.sqlitedb”); //从设备中拉出文件
driver.pullFolder(“Library/AddressBook”); //从设备中拉出文件夹
driver.PushFile(“/data/local/tmp/file.txt”, “some data for the file”); //推送文件到设备中去
driver.swipe(75, 500, 75, 0, 0.8) //模拟用户滑动
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(1)); //设置等待时间
driver.navigate().forward(); // 前进
driver.navigate().back(); // 后退
driver.navigate().refresh(); // 刷新
driver.currentActivity(); //当前activity,可用于断言跳转是否正确
driver.startActivity(appPackage,appActivity); //启动其他app的activity
坐标操作,降低适配带来的不适用: 
double Screen_X = driver.Manage().Window.Size.Width;//获取手机屏幕宽度 
double Screen_Y = driver.Manage().Window.Size.Height;//获取手机屏幕高度 
double startX = element.Location.X; //获取元素的起点坐标,即元素最左上角点的横坐标 
double startY = element.Location.Y; //获取元素的起点坐标,即元素最左上角点的纵坐标 
double elementWidth = element.Size.Width; //获取元素的宽度 
double elementHight = element.Size.Height; //获取元素的宽度

 

元素定位类findElementByXX
driver.findElementById(“id”);
id获取方法:利用uiautomater截屏,获取resource id;
driver.findElementByClassName(“className”);
通常通过这种方式获取的view不止一个,需要遍历一遍得到的 views,然后根据条件匹配需要的view。
driver.findElementByName(“text”);
name获取方法:利用uiautomater截屏,获取text;
driver.findElementsByLinkText (“text”);
针对webview上元素的超链接
driver.findElementByXPath(“//*[@name=’62’]”);
举例,我要定位下图页面中的这个元素,我采用xpath定位时,可以这样写:
WebElement webElement = driver.findElementByXPath("//android.widget.TextView[contains(@text,‘商品描述‘)]");
webElement.click();