我正在使用calabash-android为Android应用程序编写一系列自动化测试,我需要能够检测到android系统键盘是否可见,并且(如果可能的话)读取一些键(即如果返回键说Done
而不是Next
或Enter
)。我知道有适用于iOS的keyboard_visible?
命令,但我无法找到类似于Android的任何内容。
有没有人建立自己的函数来处理这些实例?
答案 0 :(得分:1)
有一种方法可以使用Android SDK中名为uiautomator的工具在Android上转储屏幕当前内容。然后,您可以根据需要进行检查。它不是最优雅的解决方案,但它可能会起作用。看看这篇文章。
答案 1 :(得分:0)
windown_input_method = %x(adb -s #{ENV['ADB_DEVICE_ARG']} shell dumpsys window InputMethod | grep "mHasSurface")
windown_input_method.include?("isReadyForDisplay()=true")
如果键盘可见则返回true,否则返回false ENV ['ADB_DEVICE_ARG']是环境变量,用于保持Android设备的设备ID连接。如果您总是在一台设备上运行,只需
windown_input_method = %x(adb shell dumpsys window InputMethod | grep "mHasSurface")
windown_input_method.include?("isReadyForDisplay()=true")
会做