我和我的团队一直在设置一个Jenkins服务器,以便在我们用作构建服务器的Mini上自动化运行单元和ui测试。这个Mini没有附加外设,我们唯一可以访问它的方法是远程登录。
当我远程登录到这台机器时,使用我的Mac内置的屏幕共享应用程序,使用iOS模拟器可以很好地运行测试。但是,如果在运行测试时关闭远程连接,则涉及键入文本的ui测试在尝试键入(所有其他测试/ ui测试都会非常成功地通过)时将失败,导致以下错误:
断言失败:超时等待键事件完成
这显然会在Jenkins为我们自动运行测试时造成一些问题,因为我们并不总是希望远程登录到机器中。
我觉得这和模拟器的软件键盘有关,但我不明白为什么会有问题。mac是否需要连接某种显示输出才能使软件键盘存在或类似的东西?将监视器连接到机器(即使没有真正使用它)是否会导致测试通过?为什么会是这样呢?
发布于 2016-02-23 08:27:19
这个问题可以通过关闭模拟器设置中连接的硬件键盘来解决。
您可能还想尝试一下这个UI Testing Failure - Neither element nor any descendant has keyboard focus on TextView
发布于 2019-09-11 01:44:18
在您展示CNContactViewController实例之后,Xcode 10仍然存在相同的问题。
避免编写那些需要调用CNContactViewController`实例的情况。
或者有个解决办法:
app.keys["1"].tap()
app.keys["2"].tap()
app.keys["3"].tap()发布于 2017-05-16 10:07:22
我正在使用xcode 8.2.1,并在ios 9.3版本上运行测试。一种简单的方法是在点击文本框后,在输入文本框之前添加2-5秒的睡眠时间。不过,这不是一个永久的解决办法。
另一个可靠的解决方案
在运行测试之前,取消选择设置中的所有键盘首选项。
"KeyboardAllowPaddle": false,
"KeyboardAssistant": false,
"KeyboardAutocapitalization": false,
"KeyboardAutocorrection": false,
"KeyboardCapsLock": false,
"KeyboardCheckSpelling": false,
"KeyboardPeriodShortcut": false,
"KeyboardPrediction": false,
"KeyboardShowPredictionBar": falsehttps://stackoverflow.com/questions/34009253
复制相似问题