Какое свойство в элементе управления должно быть установлено для получения значения из AppResult.Text в Xamarin.UITest? - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь создать пользовательский элемент управления в Xamarin.Forms, который имеет уникальный идентификатор для автоматизации. Итак, я установил свойство contentDescription для android рендерера. Итак, я могу получить свойство AppResult.Label для идентификации элемента управления. Но мои требования таковы, как получить свойство text элемента управления? Какое свойство я должен установить на уровне управления с соответствующим текстом, чтобы получить его в свойстве AppResult.Text .

[Test]
[Description("SampleTest")]
public void WelcomeTextIsDisplayed()
{          
    App.Repl();
    AppResult[] results = App.WaitForElement("myControl");            
    Assert.IsTrue(results[0].Text == "My Control Text", results[0].Text + "\n" + results[0].Description + "\n" + results[0].Id + "\n" + results[0].Label);
}

Для получения дополнительной информации я подготовил простой пример, чтобы лучше объяснить о моем случае. Здесь я получил свой собственный элемент управления из Grid и ввел свойство Text. Когда я пытаюсь просмотреть элемент с помощью метода Repl (), он не показывает свойство Text, но показывает свойства текста для элементов управления Label & Entry.

<StackLayout >
    <Label Text="Hello, Custom Renderer!" />
    <local:MyEntry Text="In Shared Code" AutomationId="myEntry" />
    <local1:CustomView Text="Sample" BackgroundColor="Red" HeightRequest="500" AutomationId="customControl" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"/>
</StackLayout>
public class CustomView : Grid
{
    public CustomView()
    {           
    }

    public static readonly BindableProperty TextProperty = BindableProperty.Create("Text", typeof(string), typeof(string),string.Empty);

    public string Text
    {
        get { return (string)GetValue(TextProperty); }
        set { SetValue(TextProperty, value); }
    }

Результат при вызове App.Repl (),

enter image description here

1 Ответ

0 голосов
/ 12 марта 2020

Я не уверен, насколько Xamarin.Forms отличаются от Xamarin. Android (это в основном то, что мой опыт.)

Что произойдет, если вы попробуете

        app.Query(c => c.Id("NoResourceEntry-2").Property("Text")).SingleOrDefault();

или какой-то вариант из вышеперечисленного? Можете ли вы что-то сделать с этим? Надеюсь, это поможет или направит вас в правильном направлении.

...