6

機能的な UI テストにKIF フレームワークを使用しています。多くのビュー (ラベル、ボタン、テキストフィールドなど) に固有のアクセシビリティ ラベルが割り当てられている現在の iPad 画面を使用しているとします。accessibilityLabel文字列が手元にある場合、UIViewそれを使用して現在の画面から関連する参照を取得できますか?

たとえば、[[UIView alloc] viewWithTag:5]提供UIVIewされtagた . のようなものを探してい[[UIView alloc] viewWithAccessiblityLabel:@"my label"]ます。

PS: ブルート フォース メソッドは、self.subviews 内のすべてのビューを再帰的に反復し、アクセシビリティ ラベルを比較して探しているものを見つけることです。私はより良いアプローチを探しています。

4

3 に答える 3

11

KIF を使用して UI の自動化を行う場合、説明したことを実現するための信じられないほど簡単な方法が実際にありますが、KIF はこれが可能であることを明らかにしていません。waitForViewWithAccessibilityLabel見つかったビューへの参照を返します。

迅速

 let view = tester().waitForView(WithAccessibilityLabel: "My label")

Objective-C

UIView *view = [tester waitForViewWithAccessibilityLabel:@"My label"];

一度発見すると、非常に便利です。

于 2014-10-08T17:50:46.060 に答える
9

UIの自動化にKIFを使っています!特定の accessibilityLabel からビューを取得する手順は次のとおりです。メソッドviewContainingAccessibilityElement:elementは UIAccessibilityElement クラスの拡張メソッドです。

UIAccessibilityElement *element = [[[UIApplication sharedApplication] keyWindow] accessibilityElementWithLabel:label];
UIView *view = (UIView*)[UIAccessibilityElement viewContainingAccessibilityElement:element];
于 2013-05-16T08:58:09.037 に答える