C#学习教程:Xamarin.UITest:如何检索列表中的所有元素Xamarin.UITest只给我6个元素,因为只有6个元素在UI中可见。如何从UITest中的列表中检索所有500个元素?如上所述,app.Query的预期行为将只返回页面上所有可见控件的结果。因此,如果控件不可见,app.Query将不会返回它。检索列表中所有数据的方法是使用后门方法。Xamarin有关于如何在UITest中使用后门的附加文档。示例应用程序此示例应用程序实现了教程中的代码片段:https://github.com/brminnick/UITestSampleApp教程1.创建可序列化对象由于后门方法仅限于返回字符串,我们需要能够序列化我们的目的。您需要在每个项目中添加Newtonsoft.JsonNuGet包;即,将Newtonsoft.JsonNuGet添加到.NETStandard项目、iOS项目、Android项目和UITest项目。2.创建静态方法来序列化对象这些方法将用于序列化和反序列化对象。使用Newtonsoft.Json;publicstaticclassConverterHelpers{publicstaticstringSerializeObject(objectvalue){returnJsonConvert.SerializeObject(value);}publicstaticTDeserializeObject(stringvalue){returnJsonConvert.DeserializeObject(value);AppDelegate添加后门方法AppDelegate中的这个方法将从您的iOS应用程序公开一个后门,UITest可以使用它。如果您没有iOS应用程序,请跳过此步骤。[Export("getDataAsString:")]publicNSStringGetDataAsString(NSStringnoValue){vardata=[在此处添加代码以从您的应用程序检索数据]vardataAsString=ConverterHelpers.SerializeObject(data);返回新的NSString(dataAsString);}4.向MainActivity或Application类添加一个后门方法MainActivity(或Application类,如果有的话)中的这个方法将从您的Android应用程序中公开一个UITest可以使用的后门。如果您没有Android应用程序,请跳过此步骤。[Export("GetDataAsString")]publicstringGetDataAsString(){vardata=[在此处添加代码以从您的应用程序检索数据]varlistPageDataAsBase64String=ConverterHelpers.SerializeObject(data);返回dataAsBase64String;}5.创建一个静态方法来从您的应用程序中检索数据UITest调用后门在UITest项目中创建一个静态方法以从UITest调用后门方法。内部静态列表GetListData(IApp应用程序){字符串dataAsString;if(appisiOSApp)dataAsString=app.Invoke("getDataAsString:","").ToString();elsedataAsString=app.Invoke("GetDataAsString").ToString();返回ConverterHelpers.DeserializeObject>(dataAsString);}6.从UITest调用后门在UITest测试方法中,实现一个静态方法来检索数据。以上就是C#学习教程:Xamarin.UITest:Howtoretrieveallthecontentsharedbyallelementsinlist。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——[测试]publicvoidVerifyData(){Assert.IsTrue(GetListData(app).Count==500);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
