我正在使用XCUITest来测试存在键盘时的UI行为-例如,当键盘出现时内容是否正确向上移动。
出于某种原因,iOS模拟器坚持要求定期仅禁用软件键盘。有时在模拟器重新启动时,但有时甚至只是在测试过程中切换文本字段时。
是否有办法始终在模拟器中强制使用软件键盘?例如XCUIDevice上的命令行参数或属性?我正在CI上运行这些测试,因此无法在模拟器中手动启用软件键盘。
答案 0 :(得分:4)
我在Xcode中添加了一个规范。它将默认ConnectHardwareKeyboard NO写入〜/ Library / Preferences / com.apple.iphonesimulator.plist文件,然后退出模拟器。退出模拟器很重要,因为当测试重新启动模拟器时,只有这样,它才会考虑我们编写的默认值。
答案 1 :(得分:1)
我遇到了同样的问题,这对我有用:
(单击模拟器)>硬件>键盘
然后取消选中“连接硬件键盘”
答案 2 :(得分:0)
osascript -e'退出应用程序“模拟器””
SIMUS_KEYBOARD =
/usr/libexec/PlistBuddy -c "Print :DevicePreferences" ~/Library/Preferences/com.apple.iphonesimulator.plist | perl -lne 'print $1 if /^ (\S*) =/'
回显“ $ SIMUS_KEYBOARD” |同时阅读-r a;做/ usr / libexec / PlistBuddy -c“设置:DevicePreferences:$ a:ConnectHardwareKeyboard false“〜/ Library / Preferences / com.apple.iphonesimulator.plist || / usr / libexec / PlistBuddy -c”添加:DevicePreferences:$ a:ConnectHardwareKeyboard bool false”〜/ Library / Preferences / com.apple.iphonesimulator.plist;完成
在测试目标的“构建阶段”中运行上述脚本可使模拟器始终使用模拟器键盘。