男儿欲遂平生志,六经勤向窗前读。这篇文章主要讲述Android文本字段元素可以选择,但不可编辑相关的知识,希望能为你提供帮助。
我在玩Xamarin UITest,我注意到在我的android设备(三星S10E,第10版)上,Xamarin UITest(第3.0.7版)在点击输入文字元素时无法在其中输入文字该元素。
输入元素将光标对准输入字段内,并且显示键盘,但未输入任何文本。为了增加另一层次的复杂性,即使从未输入文本,我的测试也会通过并且不会失败。
这是我的代码:
app.WaitForElement(c =>
c.Class("UsernameID"));
Thread.Sleep(3000);
app.EnterText(c =>
c.Id("UsernameID"), "Password1");
也尝试过:
app.EnterText(c =>
c.TextField("LoginUserIDEntry"), "oaqa_Clark6_ps");
我插入了一个线程睡眠,以防键盘无法及时为EnterText调用加载。
ios上的相同代码可以很好地工作。
我了解Xamarin.UITest不使用软键盘。而是将其自身插入软键盘和应用程序之间,并模拟按键。而iOS实际上是模拟键盘上的按键。
谁能告诉我这是语法问题,特定于设备的问题还是Xamarin问题?
答案为了识别xamarin元素,您需要使用
x:Name
or even AutomationId
field in shared project xaml.Class将尝试在本机android或iOS中按类名称查找它。这两个平台中的类名与您在第一个代码块中似乎提到的名称极不可能相同。
一般来说,您应该主要使用
x:Name
应该可以使用UITest projextAutomationId
Marked
这里有完整的好文档
<
Entry x:Name="entryXName" AutomationId="entryAutoId" />
【Android文本字段元素可以选择,但不可编辑】您也可以
app.EnterText(c =>
c.Marked("entryXName"), "oaqa_Clark6_ps");
//by id
app.EnterText(x=>
x.Id("entryAutoId"),"foobarblahblackship");
。推荐阅读
- 如何永久保存Android webview中的cookie()
- 如何在WebView Android中过滤手机和其他Web链接
- 在背景上每5分钟在Android应用程序中运行代码( [重复])
- Appcelerator Webview滚动到底部()
- 我错过了从Android webview打开谷歌地图的东西
- Android WebView是否需要打开外部URL的权限()
- Android蓝牙打印
- 如何为wpf c#application创建静默安装程序exe()
- Musical React App,我使用EC2,Lightsail还是S3