appium 測試使用的API:android
模擬操做類web
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; //獲取元素的寬度sql
元素定位類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();api