獲取控件
getText()
getEditText()
getButton()
getImage()
getImageButton()
getEditText()
getView()
getWebElement()
getWebUrl()
getCurretViews()
點擊操作控件
clickButton()可以通過index或者text識別控件
clickOnView()首先獲取控件然后通過clickOnView實現點擊控件
clickOnScreen(float x, float y, int numberOfClicks) 點擊指定的坐標
clickLongOnScreen(float x, float y, int time) 指定的坐標長按
滑屏操作
Solo.scrollToSide(KeyEvent.KEYCODE_DPAD_RIGHT);向右滑屏
Drag(float fromx, float toX, float fromy,float toY, int stepCount)拖動,step越少移動越快
跳轉
goBack()
goBackToActivity("Activity名");跳轉到指定的Activity
點擊按鍵
按控件屬性右下角的index定位,在遍歷整個子對象時通常采用方式,先定位到父對象,再用這種方式取子對象
solo.clickOnButton(0);
如果按鍵上有文字屬性
solo.clickOnButton("查詢");
如果按鍵上的文字是圖片展現出來的,系統中只有id屬性時需要自行封裝方法,solo類沒有現成方法通過控件id操作案件,可以用以下方式操作有id的按鍵
solo.clickOnView(solo.getView("控件的ID"));
對編輯框進行輸入
通過id定位到輸入框元素
EditTextedittext=solo.getView(id);
對已定位到的控件輸入text
solo.enterText(edittext, text);
獲取控件文本屬性
toString().trim() 是將獲取的名字先轉成字符,如果前后有空格,自動去掉空格
solo.getView("id").getClass().toString().trim();
長按控件
依據控件的text定位,並執行長按操作
solo.clickLongOnText(text);
依據控件中的text定位,且同一界面有多個相同的text時采用以下方式,其中match為int型,代表尋找第幾個text
solo.clickLongOnText(text,match);
有時某個空間在當前屏幕找不到,需要滾動屏幕時采用以下方式,其中scroll為boolean型,為True時在找不到控件時會 自動滾動
solo.clickLongOnText(text, match, scroll);
菜單操作
點擊某個菜單
solo.clickOnMenuItem(text);
下拉列表操作(Android稱為Spinner控件)
依據text值選擇所要的項
solo.isSpinnerTextSelected(text);
拖動控件
fromX, toX, x軸從某個點拖動到某個點
fromY, toY, Y軸從某個點拖動到某個點
solo.drag(fromX, toX, toY, stepCount);
solo.clickOnScreen(x, y);
solo.scrollDown() 向下拖動屏幕
solo.scrollToBottom() 滾動到屏幕底部
solo.scrollUp() 向上滾動屏幕
solo.scrollToTop() 滾動到屏幕頂部
斷言方法
用於驗證當前Activity 名稱是否正確
solo.assertCurrentActivity(message, activityClass)
驗證內存值的信息
solo.asserMemoryNotLow();
由於測試中引用了junit包,所以同城還可以用junit斷言方法,驗證語氣結果與實際結果是否相符
Assert.assertEquals(expected, actual);
condtion得到是一個Boolean如果condition得到的是True用例通過
Assert.assertTrue(condition);
如果condition得到的是false 用例通過
Assert.assertFalse(condition);
對象非空判斷
Assert.assertNotNull(object);
AssertasserNull(object);
對象與對象之間的比對
Assert.assertSame(expected, actual);