在iOS模拟器中为XCUITest强制使用软件键盘

时间:2019-03-27 15:58:18

标签: ios ios-simulator xcuitest uitest

我正在使用XCUITest来测试存在键盘时的UI行为-例如,当键盘出现时内容是否正确向上移动。

出于某种原因,iOS模拟器坚持要求定期仅禁用软件键盘。有时在模拟器重新启动时,但有时甚至只是在测试过程中切换文本字段时。

是否有办法始终在模拟器中强制使用软件键盘?例如XCUIDevice上的命令行参数或属性?我正在CI上运行这些测试,因此无法在模拟器中手动启用软件键盘。

3 个答案:

答案 0 :(得分:4)

我在Xcode中添加了一个规范。它将默认ConnectHardwareKeyboard NO写入〜/ Library / Preferences / com.apple.iphonesimulator.plist文件,然后退出模拟器。退出模拟器很重要,因为当测试重新启动模拟器时,只有这样,它才会考虑我们编写的默认值。

enter image description here

答案 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;完成

在测试目标的“构建阶段”中运行上述脚本可使模拟器始终使用模拟器键盘。