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

我正在使用KIF来自动化我的应用程序,而我正在尝试自动将某些内容input到UISearchBar并进行search。 不幸的是,我没有find一个令人满意的方式来做到这一点,通过编程的方式点击searchbutton后,我已经input了我的search文本。

所以相反,我只是简单地使用KIF的tapScreenAtPoint方法。 该方法的问题是,它执行以下操作:

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

它期望的水龙头实际上触摸一个视图..由于键盘显然不是一个视图,这个testing将无法触发键盘上的searchbutton。

如何以编程方式点击键盘上的button? 我认为这对于任何自动化testing套件都是非常有用的。

这听起来像是在尝试点击键盘上的“search”button。 返回键上的辅助function标签不遵循任何种类的理智模式。 查看可访问性检查器,您会看到“SEARCH”,但在所有操作系统版本上可能不一致。

更新

您可以通过将\n添加到您的enterText...来触发searchbuttonenterText...

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

搜索按钮在选择器中

正确的方法是使用:

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

[tester waitForViewWithAccessibilityLabel:@"search"];

[tester tapViewWithAccessibilityLabel:@"search"];

在这种情况下,返回键的辅助function标签是“search”,您可以使用辅助function检查器应用程序对其进行validation。

但要小心,如果要添加以大写字母结尾的文本,则不会按“返回键”(search / done / return / whatever),例如:

“样本testing”

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

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