1.检查CheckBox 是否选上,用solo.isCheckBoxChecked( “text” )。
有时候checkBox 没有相关的text,这时要用solo.isCheckBoxChecked(index) 。
2. 如果页面上相同的string有多个,可以用index来区分。
如solo.clickOnText(text,index),第一次匹配index=1,第N次匹配index=n。
3.发送sendkey命令时,用sendKeys (String keysSequence)可以指定发送动作重复的次数,唯一需要注意的就是这里面KeysSequence不用想普通命令时写上 KeyEvent.KEYCODE_这些,直接写sendKeys(i*KEYEVENT),比如sendKeys(256*DEL)就是重复256次删除动作
4. InstrumentationTestCase可以用来模拟触摸屏和按键的处理,为了避免误操作,在测需要触摸和按键的case前最好关闭模拟器或设备的触摸功能:setActivityInitialTouchMode(false);
5. 触摸和按键可以通过TouchUtils.clickView(this, button/view);来实现
6、断言 assert:
assertEquals(“string”,expect,actual):判断实际值与期待值是否相等,相等判定为真,否则为false,并报错string。
8.EditText 处理
用solo.enterText(0,"text"), 有时会发生无法输入string的现象。
1 EditText fNameInputField = solo.getEditTextWithHint("string") 2 3 assertNotNull (“string of error hint”,fNameInputField); 4 5 solo.enterText (fNameInputField, "your string") 6 7 //getEditTextWithHint的函数定义: 8 9 for (EdutText view :getCurrentEditText()) 10 11 { 12 CharSequence target=view.getHint(); 13 14 Pattern pattern=Pattern.compile(hintRegex); 15 16 Matcher matcher=pattern.matcher(target); 17 18 if (matcher.find()) 19 20 { 21 return view; 22 } 23 } 24
10.View 处理:
ArrayList<View> viewList =getCurrentViews();
index=viewList.indexOf(view);//当前view对应的index
如果要得到其他View viewList.get(index+othernumber)
11.instrumentation 对key的处理 private instrumentation instru;instru.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK)
solo实例的创建方法 helloinstrumentation=getInstrumentation solo =new Solo(helloinstrumentation)
12.屏幕上拉至顶
1 ArrayList<Listview> listviews =solo.getCurrentListViews(); 2 if (listviews.size()>0) { 3 4 TouchUtils.scrollToTop(this,getActivity,listviews.get(0)); 5 } 6 assertFalse (solo.searchText(subject));
13.点击下拉框
1 ArrayList<Spinner> spinner=solo.getCurrentSpinners(); 2 solo.clickOnView(spinners.get(index));