2

Я работаю над автоматизацией нашего приложения cross-platform в Visual Studio 2013 с Xamarin. И я в настоящее время изо всех сил пытаюсь прочитать значение из текстового поля на странице. Есть ли способ, который можно использовать для этого?Читать значение из текстового поля в тесте Xamarin UI REPL

Пример элемента атрибуты из REPL:

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

Теперь мне нужно значение Text =>https://myurladdress.com

спасибо.

[EDIT]

На самом деле решить:

app.Query(x => x.Marked("ApplicationUrlEntryField").Invoke("getText")); - получить значение текста по его идентификатору

+2

После запуска REPL, вы можете запустить [ 'команду tree'] (https://developer.xamarin.com/guides/testcloud/uitest/working-with/repl/#Discovering_Views_With_the_tree_Command). Это отобразит список видов, видимых на экране, а также свойства 'text'. – Demitrian

ответ

5

Вы можете использовать Text свойство из app.Query для получения значения.

Я также хотел бы включить null-check и return string.Empty, если по какой-то причине app.Query не работает.

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