2013-09-24 58 views
1

我正在使用KIF來自動化我的應用程序,並且我試圖將某些東西自動鍵入到UISearchBar中並對其進行搜索。不幸的是,我找不到satisfactory way通過編程方式在輸入我的搜索文本後點擊搜索按鈕來完成此操作。如何以編程方式點擊iOS鍵盤上的一個點

因此,我認爲只是簡單地使用KIF的tapScreenAtPoint方法。與該方法的問題是,它執行以下操作:

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

該公司預計,水龍頭,實際接觸視圖..而且由於鍵盤顯然不是一個視圖這個測試將無法觸發搜索鍵盤上的按鈕。

如何以編程方式點擊鍵盤上的按鈕?我認爲這對於任何自動化測試套件都非常有用。

回答

4

聽起來好像你正在嘗試點擊鍵盤上的「搜索」按鈕。返回鍵上的輔助功能標籤不遵循任何種類的理智模式。查看可訪問性檢查器,您會看到「SEARCH」,但在所有操作系統版本上可能不一致。

更新

您可以通過添加\nenterText...

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

Search button in selector

+0

很有趣..但是你上面的代碼不起作用(雖然我認爲它應該)..上面的'未啓用'有什麼關係嗎? – abbood

+0

我假設一旦輸入文本,文本字段就會丟失未啓用的特徵,不應該是一個問題。你可以嘗試在'enterText:...'中加入'\ n'作爲最後一個字符,看看是否觸發它。 –

+0

優秀! '\ n'技巧奏效!你可以請更新你的答案,並拿出'@「搜索」'thingie b/c它不起作用(我們不想誤導人們,我們?) – abbood

2

正確的方式觸發搜索按鈕使用方法:

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

[tester waitForViewWithAccessibilityLabel:@"search"];

爲返回鍵在這種情況下,「搜索」

[tester tapViewWithAccessibilityLabel:@"search"];

輔助功能標籤,您可以使用輔助功能檢查應用程序驗證。

但要小心,「返回鍵」(搜索/完成/返回/其他)如果添加與帽字母結尾的文本將不會被壓制,例如:

「樣本測試」

即使您嘗試使用「tapScreenAtPoint」方法,也會按下'shift'按鈕並且'返回'按鈕不會。

它發生在我身上,並讓我瘋狂了很長時間,直到我找出實際發生的事情。

+0

這是一個比程序化換行符好得多的答案。 –

相關問題