Android文本字段元素可以选择,但不可编辑

男儿欲遂平生志,六经勤向窗前读。这篇文章主要讲述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:Nameor even AutomationId field in shared project xaml.
Class将尝试在本机android或iOS中按类名称查找它。这两个平台中的类名与您在第一个代码块中似乎提到的名称极不可能相同。
一般来说,您应该主要使用x:Name应该可以使用UITest projext
AutomationId

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");

    推荐阅读