向线性布局发送值
Send value to the linear layout
我是 Appium 和一般自动化的新手。
我正在尝试编写登录测试。我有六个单独的 LinearLayout
元素,我需要在每个元素中插入值“1”。我可以识别元素(例如,id 为 "container_zero" 的元素),但我无法使用 sendKeys()
或 setValue()
方法将值发送给它。
此外,我尝试使用下面的键盘键入所需的数字(参见屏幕截图)。但由于这是应用程序的自定义键盘(不是本机 Android 键盘),我无法与之交互。我尝试了使用 AndroidKey.NUMPAD_0
和 AndroidKey.DIGIT_0
参数的方法 driver.pressKey(new KeyEvent())
- 没有用。键盘内部有 none 个元素,我可以在上面单击(它只是带有 android.view.View
class 的单个元素)。
我也有使用坐标 (X,Y) 在自定义键盘上按下所需数字的想法,但我认为这不是一个好办法(也许当我在不同的平台上启动测试时设备,坐标会有所不同 - 如果我错了请纠正我)。
请指教我该怎么办?我当时考虑过使用 Espresso,但我们在 iOS 上有相同的应用程序,所以现在我想我会尝试使用 Appium 一段时间,因为它具有跨平台功能。
但我无法使用 sendKeys() 或 setValue() 方法将值发送给它。 - 是的,您可以看到元素的属性和它不是 checkable
、clickable
、focusable
等。所以这意味着您无法 sendKeys()
甚至 click()
。
此外,我尝试使用下面的键盘键入所需的数字(参见屏幕截图)... - 这是正确的行为(与您的特定示例相关)同样,因为按钮没有不同的元素,整个键盘只有一个 FrameLayout
。
我看到两种情况:
您可以要求开发人员启用按钮元素,这样您就可以click()
在上面
您可以根据屏幕尺寸计算这些按钮的坐标,例如:1个按钮=getWindowSize().getWidth() + 50, getWindowSize().getHeight() / 2;
。
由于设备不同,这种情况非常不稳定,但如果您发现维度和按钮位置之间的正确依赖关系,它可能会起作用。
总而言之,您要么需要开发人员干预,要么就不太容易计算坐标。
我是 Appium 和一般自动化的新手。
我正在尝试编写登录测试。我有六个单独的 LinearLayout
元素,我需要在每个元素中插入值“1”。我可以识别元素(例如,id 为 "container_zero" 的元素),但我无法使用 sendKeys()
或 setValue()
方法将值发送给它。
此外,我尝试使用下面的键盘键入所需的数字(参见屏幕截图)。但由于这是应用程序的自定义键盘(不是本机 Android 键盘),我无法与之交互。我尝试了使用 AndroidKey.NUMPAD_0
和 AndroidKey.DIGIT_0
参数的方法 driver.pressKey(new KeyEvent())
- 没有用。键盘内部有 none 个元素,我可以在上面单击(它只是带有 android.view.View
class 的单个元素)。
我也有使用坐标 (X,Y) 在自定义键盘上按下所需数字的想法,但我认为这不是一个好办法(也许当我在不同的平台上启动测试时设备,坐标会有所不同 - 如果我错了请纠正我)。
请指教我该怎么办?我当时考虑过使用 Espresso,但我们在 iOS 上有相同的应用程序,所以现在我想我会尝试使用 Appium 一段时间,因为它具有跨平台功能。
但我无法使用 sendKeys() 或 setValue() 方法将值发送给它。 - 是的,您可以看到元素的属性和它不是 checkable
、clickable
、focusable
等。所以这意味着您无法 sendKeys()
甚至 click()
。
此外,我尝试使用下面的键盘键入所需的数字(参见屏幕截图)... - 这是正确的行为(与您的特定示例相关)同样,因为按钮没有不同的元素,整个键盘只有一个 FrameLayout
。
我看到两种情况:
您可以要求开发人员启用按钮元素,这样您就可以
click()
在上面您可以根据屏幕尺寸计算这些按钮的坐标,例如:1个按钮=
getWindowSize().getWidth() + 50, getWindowSize().getHeight() / 2;
。
由于设备不同,这种情况非常不稳定,但如果您发现维度和按钮位置之间的正确依赖关系,它可能会起作用。
总而言之,您要么需要开发人员干预,要么就不太容易计算坐标。