我的iOS应用程序有一个不可见的UITextField,用于捕获用户输入,然后在我自己的UI中显示它。
UITextField *hiddenTextField;
hiddenTextField = [[UITextField alloc] initWithFrame:CGRectZero];
hiddenTextField.accessibilityIdentifier = @"hiddenTextField";
[hiddenTextField addTarget:self action:@selector(hiddenTextFieldValueChanged:) forControlEvents:UIControlEventValueChanged];
hiddenTextField.delegate = self;
[self.view addSubview:hiddenTextField];
[hiddenTextField becomeFirstResponder];
它按预期工作。我正在尝试在Swift中编写自动化测试,其中包括对该字段的输入。
XCUIApplication().textFields["hiddenTextField"].typeText("input")
由于视图具有CGRectZero框架,因此自动化失败,并显示响应:
未找到匹配的匹配项:从输入
匹配类型TextField的Descendants
之前是否有人遇到此问题以及您使用过什么策略与测试中的UI进行交互?感谢。
答案 0 :(得分:0)
根据Apple网站上的documentation,只要键盘处于活动状态,您就可以对作为焦点响应者祖先的任何元素使用typeText
方法:< / p>
元素或后代必须具有键盘焦点;否则会引发错误。
鉴于上述情况,您应该只需使用以下内容键入应用程序:
XCUIApplication().typeText("input")