问题
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
Hintproperty for anEditText? - On Xamarin.iOS, how can I verify the
Placeholderproperty for aUITextField?
回答1:
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.
来源:https://stackoverflow.com/questions/41354663/xamarin-uitest-how-to-verify-placeholder-hint-text