一、通過id查詢控制項
1 activity act=solo.getcurrentactivity();23int id=act.getresources().getidentifier("id名稱","id", act.getpackagename());//id名稱通過介面檢視器hierarchyviewer.bat檢視
45 view view=solo.getview(id);
二、相同id控制項區分
1)通過其他子控制項先獲取到父控制項再獲取子控制項。
如:relativielayout下有兩個子控制項(textview和imageview)可以根據textview文件內容獲取到relativelayout控制項
relativelayout parernt=(relativelayout)solo.gettext("").getparent();
2)再根據子控制項在父控制項中的位置確定子控制項。
imeviagew search=(imageview)parernt.getchildat(0);
如果是子控制項id與其他父控制項中的子控制項id相同,而父控制項中的id不同則可以使用
imeviagew search=(imageview)parernt.findviewbyid(id);來獲取控制項。
三、listview控制項下拉重新整理
1//先得到listview控制項
2 listview listview=solo.getview(id);34
//儲存座標的陣列
5int location=new
int[2];67
//獲取listiew的座標
8listview.getlocationscreen(location);910
//座標是從左上角開始的如果listview鋪滿整個介面那麼座標可能接近(0,0)
solo.drag(location[0]+10,location[0]+10,location[1],location[1]+listview.getheight(),3)
四、webview測試(robotium很好的支援了webview)
1)首先要看到webview中網頁的原始碼(**可以通過webview.getweburl()來獲得)
2)獲取webview中網頁的標題(webview.gettitle()來獲取)
注:webview中的所有方法都需要ui執行緒中操作,不然會丟擲異常。
1 solo.getcurrentactivity().runonuithread(newrunnable()
8 });
solo中關於webview的方法有
cleartext inwebelement(by by)
clickonwebelement(by by)
entertextinwebelement(by by,string text)
waitforwebelement(by by)
從這些方法中可以看出來網頁中可以通過by類來標識
而by方法有:
by.classname() //了解css的應該知道類選擇器
by.cssselector() //這個直接就是根據css選擇器來的
by.id()//控制項的id
by.name()//控制項的名稱
by.tagname()// 標籤的名稱如
by.textcontent()//控制項中的吻別
by.xpath()
例如:solo.clickonwebelement(by.classname("link-ele"),0);//這個是根據類名來的後面的0是位置原始碼中用到這個類名的控制項太多。
Robotium之Android控制項定位實踐和建議
view source print 1.solo.clickontext note 2.asserttrue solo.searchtext note 2.2 solo.clickontext string text,int match view source print 1.solo.clicko...
指定控制項個數,指定行數,平鋪控制項
一般的for迴圈會是很麻煩的方式,不單單自己很難理解,別人也很難看懂,所謂的測試版演算法 這兒提供乙個思路清晰,絕對沒有bug的演算法 qvectorvint 9 4 2 1 8 4 2 0 0 0 0 0 vint.resize names.size 4 vint.fill 4 vint name...
查詢指定字元
輸入格式 輸入的第一行是乙個待查詢的字元。第二行是乙個以回車結束的非空字串 不超過80個字元 輸出格式 如果找到,在一行內按照格式 index 下標 輸出該字元在字串中所對應的最大下標 下標從0開始 否則輸出 not found 輸入樣例1 mprogramming 輸出樣例1 index 7 輸入...