无法使用Android Phone在Xamarin UiTest中的文本字段中输入文本

时间:2019-06-29 09:57:31

标签: c# .net xamarin xamarin.android xamarin.uitest

我正在使用Xamarin UiTest来自动化我的android应用程序。当我运行测试时,初始屏幕会加载到设备中,而uitest将等待元素的定位,但是等待60秒后却失败了。我尝试使用xpath进行定位和ID,但找不到元素

我尝试使用xpath,marked和Id进行定位,但未定位该元素。该元素具有与它关联的ID-txtusername。我正在使用Honor设备运行此测试。

Actually the login screen is a webview.Please click the image for more details

[Test] public void FirstTest() { app.WaitForElement(c => c.Marked("txtusername"), timeout: TimeSpan.FromSeconds(60)); app.EnterText(c => c.Id("txtusername"),"abc"); app.DismissKeyboard(); }

用于初始化应用的代码

public class AppInitializer { public static IApp StartApp(Platform platform) { if (platform == Platform.Android) { return ConfigureApp .Android //.InstalledApp("TRL.Software.IMAAPMobile") .ApkFile(@"C:Xamarin.UITest-master\Xamarin.UITest-master\CrossPlatformTest\ik.apk") .DeviceSerial("CYG3Y18809026095") .PreferIdeSettings() .StartApp(); } return ConfigureApp .iOS .StartApp(); } }

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

根据official documentation,您可以使用两种方法来访问Web视图中的信息:CSSXPath。这是有关如何在您的情况下使用它的示例:

app.WaitForElement(c => c.WebView().Css("#txtusername"));

然后您还可以输入文本

  app.ScrollDownTo(c => c.Css("input#txtusername"), "webView1", ScrollStrategy.Gesture);
  app.EnterText(c => c.Css("input#txtusername"), "Chimpanzee");