1

我正在使用KIF来自动化我的应用程序,并且我正在尝试自动在 a 中输入一些内容UISearchBar并进行搜索。不幸的是,在我输入搜索文本后,我无法通过以编程方式单击搜索按钮来找到令人满意的方法。

因此,我考虑简单地使用 KIF 的tapScreenAtPoint方法。该方法的问题在于它执行以下操作:

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

它期望点击实际触摸视图..并且由于键盘显然不是视图,因此该测试将无法触发键盘上的搜索按钮。

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

4

2 回答 2

4

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

更新

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

[tester enterTextIntoCurrentFirstResponder:@"query\n"];

选择器中的搜索按钮

于 2013-09-24T23:25:03.380 回答
2

正确的方法是使用:

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

[tester waitForViewWithAccessibilityLabel:@"search"];

[tester tapViewWithAccessibilityLabel:@"search"];

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

但请注意,如果您要添加以大写字母结尾的文本,则不会按下“返回键”(搜索/完成/返回/任何内容),例如:

“样品测试”

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

它发生在我身上,让我疯狂了很长一段时间,直到我弄清楚到底发生了什么。

于 2014-01-14T14:14:46.353 回答