2

appcelerator으로 생성 된 앱 appium 관리자를 사용하여 UiElements의 식별자가이 ID를 얻는 방법 두 요소에 대한 결과는 내가내가 UiElements의를 얻을 수 Appium 관리자를 사용하면 앱에 대해 appium 관리자를 사용하여 UiElements의 식별자가 appcelerator</p> <p>생성 얻으려고

미이 Index.xml 이름 속성을 검색 할 수 없습니다 두 경우 모두

name: 
type: UIATextField 
value: 
label: 
hint: 
enabled: true 
visible: true 
valid: true 
location: {73, 37.5} 
size: {218, 15} 
xpath: //UIAApplication[1]/UIAWindow[1]/UIATextField[1] 

과 유사 유사합니다

<Alloy>  
<Window class="container"> 
<TextField id="username"/> 
<TextField id="password"/> 
</Window> 
</Alloy> 

UiElement를 식별하려면 어떤 속성을 사용해야합니까? 이 요소를 식별하는 대신 xpath를 사용해야합니까?

안부

답변

1

내가 특별히 기본 컨트롤의 ID 필드를 설정하는 방법을 발견하지 않았습니다. 나는 누군가가 모듈이나 이것을 더 잘할 수있는 것을 알고 있기를 바랍니다. 그러나 그때까지, 내가 어떻게하는지 알기를 바랍니다.

내 텍스트 필드/버튼을 식별하는 데 사용하는 Titanium의 View 클래스에 accessibilityLabel이라는 필드가 있습니다. iOS에서 Titanium은 네이티브 컨트롤의 이름 및 레이블 속성을 accessibilityLabel 필드로 설정합니다. 그런 다음 XPath를 사용하여 간단하게 //*[@name='usernameField']과 같은 쿼리를 통해 XPath를 찾을 수 있습니다.

안드로이드는 조금 다르게 작동하며, content-desc 필드를 설정하고 그것의 끝에 .을 추가하지만, 쿼리는 여전히 //*[@content-desc='usernameField.']

두주의로 간단하다 : 아이폰 OS가에서 중첩 된 요소를 숨길 시작합니다 accessibilityLabel 필드를 설정하면 XPath. 따라서 최상위 View 클래스에 accessibilityLabel을 설정하면 그 안에있는 내용을 쿼리 할 수 ​​없습니다. 다른 문제는 iOS 및 Android에서 내게 필요한 옵션 기능에 대한 경험이 없기 때문에이 솔루션이 사용해야 할 계획에 영향을 미칠 수 있다는 것입니다.

희망이 도움이되었습니다.