一、元素操作Api
主要是做斷言 text
1、click()——觸發當前元素的點擊事件
2、sendKeys(...)——輸入數據
3、clear()——清空內容
4、getAttribute()?——獲取屬性值
字符串類型屬性:
-
content-desc(返回content-desc屬性值)
-
text(返回 text)
-
className(返回 class)
-
resourceId(返回 resource-id)
布爾類型屬性同UiautomatorViewer里面保持一致
5、getText() =====等同于:getAttribute("text")
獲取當前元素的文本值(文本屬性值)
6、getTagName()
二、androidDriver操作Api
1、currentActivity()
當前正在前臺運行的界面名,我們可以用此API在某些場景進行斷言:是否當前activity符合我們的預期等。
//得到當前正在運行的activity
String activity = androidDriver.currentActivity();
2、getPageSource()
可以用于判斷當前頁面是否有某個元素,或者判斷當前頁面有沒有產生變化:
如:上下滾動判斷是否已經到了底端/頂端;
獲取app代碼源碼 用來做斷言 根據源碼看頁面有沒有什么變化
??注意是當前頁面,當前看到的頁面,不是全部頁面
//得到當前頁面的結構圖
androidDriver.getPageSource();
3、其他信息獲取類API
-
獲取設備時間信息
androidDriver.getDeviceTime();
-
獲取設備DPI,注意不是分辨率,屏幕密度 (Density)
androidDriver.getDisplayDensity();
-
獲取automation name,默認為null,
如果有指定automation name為uiautomator2就為對應的值
androidDriver.getAutomationName();
-
獲取設備橫豎屏狀態,有PORTRAIT(豎屏)與LANDSCAPE(橫屏)
androidDriver.getOrientation();
4、pressKey():KeyEvent 按鍵——app特有api—— pressKey()
輸入android對應的key 激活對應的功能 包括:聲音大小、相機、開關機、返回鍵等等
安卓對應的鍵:Android KeyCode 安卓鍵碼對照表-CSDN博客
KeyEvent key = new KeyEvent();
key.withKey(AndroidKey.BACK);
driver.pressKey(key);
5、getScreenshotAs() 截圖
//手機截圖文件
//file對象存在一個臨時目錄,srcFile
File srcFile = driver.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(srcFile,new File("/.../android.png"));
6、坐標點擊 TouchAction
選擇設置中關于手機->連續點擊五次版本號->進入開發者選項->指針位置進行勾選
注意:坐標點擊受設備屏幕尺寸/分辨率/DPI影響,萬不得已不要使用此種方式
缺點:兼容性差 更換設備后一般不能用
實現方式:(類似于web的拖動:press——release——perform)
TouchAction action = new TouchAction(driver);
//創建坐標點擊對象PointOption
//創建點 x y ??左上角是原點
PointOption point = PointOption.point(493,837);
//點擊
action.press(point).release().perform();