如何以编程方式点击iOS键盘上的一个点

时间:2013-09-24 22:46:27

标签: ios objective-c kif-framework

我正在使用KIF来自动化我的应用,并且我正在尝试自动将某些内容输入UISearchBar并进行搜索。很遗憾,在我输入搜索文字后,通过以编程方式点击搜索按钮,我无法找到satisfactory way

相反,我考虑过只使用KIF的tapScreenAtPoint方法。该方法的问题在于它执行以下操作:

CGPoint windowPoint = [window convertPoint:screenPoint fromView:nil];
view = [window hitTest:windowPoint withEvent:nil];

预计水龙头会实际触摸视图..由于键盘显然不是视图,因此测试无法触发键盘上的搜索按钮。

如何以编程方式点击键盘上的按钮?我认为这对任何自动化测试套件都非常有用。

2 个答案:

答案 0 :(得分:4)

听起来你正试图点击键盘上的“搜索”按钮。返回键上的辅助功能标签不遵循任何理智模式。查看辅助功能检查器,您将看到“搜索”,但在所有操作系统版本上可能不一致。

<强>更新

您可以通过将\n添加到enterText...

来触发搜索按钮
[tester enterTextIntoCurrentFirstResponder:@"query\n"];

Search button in selector

答案 1 :(得分:2)

正确的方法是使用:

[tester clearTextFromAndThenEnterText:@"sample test" intoViewWithAccessibilityLabel:@"SearchField"];

[tester waitForViewWithAccessibilityLabel:@"search"];

[tester tapViewWithAccessibilityLabel:@"search"];

返回键的辅助功能标签是“搜索”,在这种情况下,您可以使用辅助功能检查器应用验证它。

但要注意,如果要添加以封面字母结尾的文本,则不会按下“返回键”(搜索/完成/返回/其他),例如:

“样本测试”

即使您尝试使用“tapScreenAtPoint”方法,也会按下“shift”按钮而“返回”按钮不会。

发生在我身上,让我疯了很久,直到我弄明白实际发生了什么。