2

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

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

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

1 回答 1

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();
}

示例应用

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

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

解释

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

所有测试均通过Xamarin Test Cloud进行验证。测试报告可在此处查看

于 2016-12-28T02:41:32.763 回答