如何以编程方式挖掘的iOS键盘上的一个点(how to programmatically tap a

2019-10-18 16:33发布

我使用KIF自动化我的应用程序,和我想要自动化输入的东西到UISearchBar和寻找它。 不幸的是我无法找到一个令人满意的方式来做到这一点的搜索按钮编程点击我已经进入我的搜索文本之后。

所以,相反,我认为单纯用KIF的tapScreenAtPoint方法。 与该方法的问题是,它执行以下操作:

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

该公司预计,水龙头,实际接触视图..而且由于键盘显然不是一个视图这个测试将无法触发键盘上的搜索按钮。

一个人如何可以以编程方式敲击键盘上的按钮? 我认为这将是任何自动化测试套件非常有用的。

Answer 1:

这听起来像你想挖掘在键盘的“搜索”按钮。 归还钥匙的辅助功能的标签不遵循任何形式的理智模式。 展望辅助功能检查,你会看到“搜索”,但可能不会在所有操作系统版本是一致的。

更新

您可以通过添加触发搜索按钮\nenterText...

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



Answer 2:

正确的方法是使用:

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

[tester waitForViewWithAccessibilityLabel:@"search"];

[tester tapViewWithAccessibilityLabel:@"search"];

为返回键在这种情况下,“搜索”标签辅助功能,您可以通过使用无障碍检查应用程序验证。

但要小心,“返回键”(搜索/完成/返回/其他)如果您添加的帽字母结尾,例如文本将不会被压制:

“测试样品”

在“转移”按钮将被按下,“返回”按钮不会,即使您尝试使用“tapScreenAtPoint”的方法。

它发生在我身上,得到了我疯了很长一段时间,直到我想通了,究竟是怎么回事。



文章来源: how to programmatically tap a point on the iOS keyboard