2017-11-01 1 views
1

Appium과 java를 사용하여 Android 장치에서 Google지도를 자동화하려고합니다. "근처 음식점"을 검색하고 첫 번째 링크를 클릭하십시오. 스크린 샷을 확인하십시오. 이제 첫 번째 링크를 클릭 할 때 어떤 방법을 사용해야합니까? 레스토랑 목록은 기기 위치에 따라 다를 수 있습니다. 정확하게 나는 검색 후 첫 번째 항목에 대한 클릭을 수행 할 위치 표시기가 필요합니다.Appium : appium에서 검색 한 후 첫 번째 링크를 클릭하는 방법

도움이 되셨습니까?

enter image description here

답변

1

을 찾을 수 childSelector을 사용 "com.google.android.apps.maps : id/title");

// 당신은 (0) .click() 첫 results.get을 클릭합니다

// 당신은 당신이 목록 결과 각 루프에 사용할 수있는 전체 결과 목록을 반복하려면 (AndroidElement 결과 : 결과) { }

0

는 셀의 XPath는 코드를 통해 레이아웃 변경 될 때까지 일관성을 유지해야한다.

은 나를 위해 그것이 내가이를 찾기 위해 Appium Desktop을 사용하고

/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.support.v4.widget.DrawerLayout/android.widget.LinearLayout/android.view.ViewGroup/android.view.ViewGroup/android.support.v7.widget.RecyclerView/android.widget.RelativeLayout[1]/android.widget.LinearLayout/android.widget.TextView[1] 

입니다.

+0

안녕 마이크. 나는 여기서 xpath를 찾는 더 좋은 방법을 발견했다고 생각한다. 클래스와 인덱스를 사용하면 매우 쉽게 수행 할 수 있습니다. 이 요소의 경우 xpath는 "//android.widget.LinearLayout[@index='0 ']" – Kazi

+0

Perfect입니다. 그것을 찾는 데는 여러 가지 방법이 있습니다. 귀하의 솔루션 (더 짧은)은 제 게으른 것보다 훨씬 낫습니다. 위의 링크에서 다운로드하여 실행 (서버 시작)하고 관리자를 시작하십시오. 당신은 능력 집합을 작성해야합니다. 문서에 대한 링크는 매우 유용합니다. –

+0

감사합니다. Mike – Kazi

0

MobileBy.AndroidUIAutomatorTouchAction 클래스를 사용하면 첫 번째 링크를 찾아 클릭 할 수 있습니다.

목록 결과 = driver.findElementsByID (: 나는 당신이 당신의 결과 로케이터로 ID를 사용하고 ID는 모든 검색 결과에 대해 고유 한 그대로 주먹 요소를 클릭 할 수 있습니다 첫 번째 링크

elem = driver.findElement(MobileBy.AndroidUIAutomator("new UiSelector().resourceId(\"com.google.android.apps.maps:id/recycler_view\").childSelector(new UiSelector().className(\"android.widget.LinearLayout\").index(0))")) 

TouchAction touchAction = new TouchAction(driver); 
touchAction.press(elem).release().perform(); 
관련 문제