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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 projext

AutomationId
Marked

这里有完整的好文档<Entry x:Name="entryXName" AutomationId="entryAutoId" />

您也可以app.EnterText(c => c.Marked("entryXName"), "oaqa_Clark6_ps"); //by id app.EnterText(x=> x.Id("entryAutoId"),"foobarblahblackship");

以上是关于Android文本字段元素可以选择,但不可编辑的主要内容,如果未能解决你的问题,请参考以下文章

Fabric.js 文本字段 - Android 问题

使input文本框不可编辑的3种方法

如何设置表单元素的只读和禁用属性

使input文本框不可编辑的3种方法

几种设置表单元素中文本输入框不可编辑的方法

如何在 Sencha Touch 中使文本字段不可编辑