2017-12-05 33 views
0

Appium은 ID 로케이터 (resource-id)를 사용하여 요소를 식별 할 수 없으며 대신 Accessibility ID locator를 사용하여 요소를 식별 할 수 있습니다.Appium이 resource-id를 사용하여 요소를 식별 할 수 없음

첨부 된 이미지를 참조하십시오. enter image description here

+0

하이브리드 앱이든 네이티브 앱이든 앱 유형에 대해 말하지 않았습니까? – workspace

+0

네이티브 앱 ..... – Swyam

+0

개발자가 동적 리소스 ID를 일부 요소로 설정하는 경우 리소스 ID가 변경되는지 여부를 확인할 수 있습니까? id가 동일 할 때마다 다음 코드를 시도 할 수 있습니다 : driver.find_element_by_id ("your_Element_ID") 여기서 appium은 resource-id를 id로 간주하므로 id로 요소를 검색해야합니다. – shiv

답변

0

귀하의 Appium 버전은 무엇입니까? Appium Inspector에서 UI Automator Viewer와 다른 점이 있는지 확인해주십시오. 이 작품의 아무도, 당신은 당신이 ID의 일부 같은 $이있는 경우

+0

이것은 작동하지 않습니다. content-desc 필드는 동적이므로 사용할 수 없습니다. 내가 사용할 수있는 유일한 것은 자원 ID입니다. Appium 버전은 1.4.16.1입니다. 나는 자동화에 익숙하지 않고 appium inspector를 아직 사용하지 않았다. 검사관을 시작하는 동안 오류가 발생합니다. – Swyam

+0

Appium 버전을 업데이트 할 수 있습니까? – barbudito

+0

Appium은 시작할 때 업데이트를 확인하고 사용할 수있는 업데이트 없음이라고 말합니다. 한가지 주목할 점은이 경우 resouce-id가 패키지 이름으로 시작하지 않는다는 것입니다. 이러한 링크는 .pdf/.xls 파일입니다. 어떤 단서라도 얻으면. – Swyam

0

Appium가 지원하지 않는 추가 정보를 제공 할 필요가없는 경우

어쨌든 ...이

#Can't see at your screenshot the whole resource-id so I put what I see. 
driver.find_element_by_xpath("//android.view.View[@resource-id='rptRole__ctl0_rptCommunicationlt...']") 

#You could also try these two options: 
driver.find_element_by_xpath("//android.view.View[@content-desc='1_gr_selected_stores_flex_update.xls']") 

driver.find_element_by_xpath("//android.view.View[@text='1_gr_selected_stores_flex_update.xls']") 

을보십시오. 전체 ID를 게시 할 수 있습니까? 다음과 같이 findElementById의 방법을 시도해보십시오 :

driver.findElementById("alertTitle"); 

를이 요소를 발견하고 요소를 찾기 위해 인덱스를 사용하기 위해 사용하는 클래스 이름을 작동하지 않는 경우.

List<WebElement> allElements=driver.findElementsByClassName("android.view.View"); 

그리고 위의 목록에서 색인을 사용하여 요소를 가져옵니다.

WebElement yourElement= allElements.get(Required_Index); 
0

아래 코드가 작동합니다.

driver.findElementsByXPath ("android.view.View (@ 리소스 ID, 'rptRole')]"). 클릭();