首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >UI测试失败-元素或任何子体都不将键盘焦点放在secureTextField上

UI测试失败-元素或任何子体都不将键盘焦点放在secureTextField上
EN

Stack Overflow用户
提问于 2015-08-24 22:29:13
回答 26查看 38.8K关注 0票数 168

这是我的案例:

代码语言:javascript
复制
let passwordSecureTextField = app.secureTextFields["password"]
passwordSecureTextField.tap()
passwordSecureTextField.typeText("wrong_password") //here is an error

UI测试失败-元素或任何子体都没有键盘焦点。元素:

怎么啦?这对于普通的textFields来说工作得很好,但是只有在secureTextFields上才会出现问题。有什么解决方法吗?

EN

回答 26

Stack Overflow用户

回答已采纳

发布于 2015-12-05 02:34:05

这个问题让我痛苦万分,但我设法找到了一个合适的解决方案。在模拟器中,确保已禁用I/O -> Keyboard -> Connect hardware keyboard

票数 340
EN

Stack Overflow用户

发布于 2016-01-15 22:14:34

最近,我们发现了一个技巧,可以让接受的答案持久化。要禁用模拟器设置:I/O -> Keyboard -> Connect hardware keyboard从命令行应这样写:

代码语言:javascript
复制
defaults write com.apple.iphonesimulator ConnectHardwareKeyboard 0

它不会影响正在运行模拟器-您需要重新启动模拟器或启动新的模拟器才能使设置生效。

票数 34
EN

Stack Overflow用户

发布于 2016-01-15 18:29:52

我已经写了一个很小的扩展(Swift),它非常适合我。代码如下:

代码语言:javascript
复制
extension XCTestCase {

    func tapElementAndWaitForKeyboardToAppear(element: XCUIElement) {
        let keyboard = XCUIApplication().keyboards.element
        while (true) {
            element.tap()
            if keyboard.exists {
                break;
            }
            NSRunLoop.currentRunLoop().runUntilDate(NSDate(timeIntervalSinceNow: 0.5))
        }
    }
}

其主要思想是在键盘出现之前不断点击一个元素(文本字段)。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32184837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档