1

私は自分のアプリを自動化するためにKIFUISearchBarを使用しています。残念ながら、検索テキストを入力した後、プログラムで検索ボタンをクリックして満足のいく方法を見つけることができませんでした。

そこで、単純に KIF のtapScreenAtPointメソッドを使用することを検討しました。この方法の問題点は、次のことを行うことです。

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

タップが実際にビューに触れることを期待しています..キーボードは明らかにビューではないため、このテストではキーボードの検索ボタンをトリガーできません。

プログラムでキーボードのボタンをタップするにはどうすればよいですか? これは、あらゆる自動化テスト スイートに非常に役立つと思います。

4

2 に答える 2

4

キーボードの「検索」ボタンをタップしようとしているようです。リターン キーのアクセシビリティ ラベルは、いかなる種類の正気のパターンにも従いません。アクセシビリティ インスペクタを見ると、「SEARCH」と表示されますが、すべての OS バージョンで一貫しているとは限りません。

アップデート

に追加することで検索ボタンをトリガーでき\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」メソッドを使用しようとしても、「シフト」ボタンは押され、「戻る」ボタンは押されません。

それは私に起こり、実際に何が起こっているのかを理解するまで、長い間私を夢中にさせました.

于 2014-01-14T14:14:46.353 に答える