Xamarin.UITest:如何验证占位符/提示文本

Bra*_*ick 2 c# xamarin.ios xamarin.android xamarin xamarin.uitest

我正在为跨平台Xamarin.iOS和Xamarin.Android应用程序编写Xamarin.UITest。

在我的Xamarin.UITest中,如何验证以下属性:

  • 在Xamarin.Android上,如何验证的Hint属性EditText
  • 在Xamarin.iOS上,如何验证的Placeholder属性UITextField

Bra*_*ick 5

样例代码

string GetPlaceholderText(string entryAutomationId)
{
    if (app is AndroidApp)
    {
        return app.Query(x => x.Marked(entryAutomationId)?.Invoke("getHint"))?.FirstOrDefault()?.ToString();
    }

    return app.Query(x => x.Marked(entryAutomationId)?.Invoke("placeholder"))?.FirstOrDefault()?.ToString();
}
Run Code Online (Sandbox Code Playgroud)

示例应用

这是示例应用程序中的相同代码段,代码段演示了如何在跨平台Xamarin.UITest中完成此任务:

https://github.com/brminnick/FaceOff/blob/master/UITests/Pages/WelcomePage.cs#L73

讲解

在Xamarin.UITest中,要从Android EditText或iOS 检索文本UITextField,必须使用该Invoke方法访问本地Java Android API和本地ObjectiveC iOS API。在我们的Invoke语句中,我们可以利用本机方法(getHint()在Android和placeholderiOS上)检索字符串。

所有测试均通过Xamarin测试云进行了验证。在这里可以查看测试报告。