我是Appium和自动化领域的新手。我正在尝试编写登录测试。我有六个单独的LinearLayout元素,在每个元素中我都需要插入值“ 1”。我可以识别元素(例如,标识为“ container_zero”的元素),但是我既不能使用sendKeys()也不可以使用setValue()方法将值发送给它。另外,我尝试仅使用下面的键盘键入所需的数字(请参见屏幕截图)。但是由于这是应用程序的自定义键盘(而不是本地Android键盘),所以我无法与其进行交互。我尝试了使用driver.pressKey(new KeyEvent())和AndroidKey.NUMPAD_0参数的方法AndroidKey.DIGIT_0-不起作用。键盘内部没有可单击的元素(它是android.view.View类的一个元素)。我也有一个想法,使用坐标(X,Y)在自定义键盘上按要求的数字,但是我认为这不是一个好方法(也许当我在其他设备上启动测试时,坐标会会有所不同-如果我错了,请纠正我)。请咨询我该怎么办?我当时考虑过使用Espresso,但是我们在iOS上拥有相同的应用程序,因此,由于它的跨平台功能,现在我想我会尽量坚持使用Appium一段时间。 最佳答案 但是我既不能使用sendKeys()也不能使用setValue()方法将值发送给它。 -没错,您可以看到元素的属性,而不是checkable,clickable,focusable等。这意味着您无法在其上使用sendKeys()甚至click()。另外,我尝试使用下面的键盘键入所需的数字(请参见屏幕截图)...-这也是正确的行为(与您的特定示例有关),因为按钮没有不同的元素,只有一个用于整个键盘。我看到两种情况:您可以要求开发人员启用按钮元素,以便您可以在其上FrameLayout您可以根据屏幕尺寸计算这些按钮的坐标,例如:1 button = click()。由于设备不同,这种情况非常不稳定,但是如果您在尺寸和按钮位置之间找到正确的依存关系,则可能会起作用。总之,您要么需要开发人员的干预,要么就不是那么简单的坐标计算。
10-07 20:30