android UiAutomator定位失靈的一種解決辦法

本人在學習使用UiAutomator的時候,遇到了一個控件經常性無法定位的問題,有的時候能定位點擊,有的時候就找不到這個控件,同樣的代碼,時靈時不靈,最近沒辦法找到了一個相對還不錯的解決方案。下面發一下截圖,就是左下角的“發送”按鈕,有的在輸入文字之前是另外一個“+”的控件,有點類似與微信聊天框裏面的界面。



思路就是通過兩種方式定位不到的話,就通過文本框,計算“發送”按鈕的位置,通過座標點擊。

下面是我的代碼:


	//發送測試文本
	public void sendTesttext(String text) throws UiObjectNotFoundException {
		writeText(text);
		if (getUiObjectByResourceId("com.gaotu100.superclassteacher:id/btn_send").exists()) {//通過resourceid定位
			waitForResourceIdAndClick("com.gaotu100.superclassteacher:id/btn_send");
			} else if (getUiObjectByText("發送").exists()) {//通過text定位
				waitForTextAndClick("發送");
				}else {
					Rect ss = getUiObjectByResourceId("com.gaotu100.superclassteacher:id/et_sendmessage").getVisibleBounds();//定位文本框
					int y = ss.centerY();//計算y座標
					int x = ss.right + 60;//計算x座標
					clickPiont(x, y);//點擊座標點
					}
		}


發佈了102 篇原創文章 · 獲贊 40 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章