2

Xamarin이 포함 된 Visual Studio 2013의 cross-platform 앱 자동화에 대해 작업하고 있습니다. 그리고 저는 현재 페이지의 텍스트 필드에서 값을 읽으려고 애 쓰고 있습니다. 이 작업을 수행하는 데 사용할 수있는 방법이 있습니까? 요소의Xamarin UI 테스트의 텍스트 필드에서 값 읽기 REPL

REPL에서 속성 :

Id => "app_url", 
Label => "ApplicationUrlEntryField", 
Text => "https://myurladdress.com", 
Class => "android.widget.AutoCompleteTextView", 
Enabled => true 

을 이제 내가 텍스트 값 =>https://myurladdress.com

감사가 필요합니다.

이 실제로 그것을 해결 [편집] :

app.Query(x => x.Marked("ApplicationUrlEntryField").Invoke("getText"));

- 해당 ID

+2

당신이 REPL를 시작하면, 다시 ['tree' 명령]을 실행할 수 있습니다 (https://developer.xamarin.com/guides/testcloud/uitest/working-with/repl/#Discovering_Views_With_the_tree_Command). 그러면 화면에 표시되는보기 목록과 여기에있는 '텍스트'속성이 표시됩니다. – Demitrian

답변

5

당신은 값을 검색 할 app.Query에서 Text 속성을 사용하여 텍스트의 값을 얻는다.

또한 null 체크를 포함하고 어떤 이유로 app.Query이 실패하면 string.Empty을 반환하는 것을 좋아합니다.

string GetApplicationUrlEntryFieldText() 
{ 
    System.Func<Xamarin.UITest.Queries.AppQuery, Xamarin.UITest.Queries.AppQuery> applicationUrlEntryField = x => x.Marked("ApplicationUrlEntryField"); 

    app.WaitForElement(applicationUrlEntryField); 

    var applicationUrlEntryFieldQuery = app.Query(applicationUrlEntryField); 

    return applicationUrlEntryFieldQuery?.FirstOrDefault()?.Text ?? string.Empty; 
} 
+1

감사합니다. 이것은 많은 도움이되었습니다. – miskegm