简体   繁体   中英

Xamarin.UITest: How To Verify Placeholder/Hint Text

I am writing a Xamarin.UITest for a cross-platform Xamarin.iOS and Xamarin.Android app.

In my Xamarin.UITest, how do I verify the following properties:

  • On Xamarin.Android, how can I verify the Hint property for an EditText ?
  • On Xamarin.iOS, how can I verify the Placeholder property for a UITextField ?

Sample Code

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

Sample App

Here is the same code-snippet in a sample app that demostrates how to accomplish this task in a cross-platform Xamarin.UITest:

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

Explaination

In Xamarin.UITest, to retrieve text from an Android EditText or a iOS UITextField , you must use the Invoke method to access the native Java Android API and native ObjectiveC iOS API . In our Invoke statements, we can take advantage of the native methods ( getHint() on Android, and placeholder on iOS) to retrieve the string.

All tests were validated via Xamarin Test Cloud . The test report is viewable here .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM