web-dev-qa-db-ja.com

UIテストXcode 7-サブビュー内の要素にアクセスできません

サブビュー内の要素にアクセスしようとしていますが、アクセスできません。

階層は次のとおりです。

ビューコントローラ:

  • 見る
    • tempView
    • userEnterView
      • zipCodeEntered

ZipCodeEnteredテキストフィールドにアクセスしたい。 「zipCodeEntered」という名前のアクセシビリティラベルがあります。

自動化を記録しようとすると、スーパービュー「userEnterView」のみが登録され、タップできる実際のテキストフィールドは登録されません。

「app.otherElements [SUPER_VIEW_NAME] .debugDescription」を印刷して、その階層にどの要素があるかを確認しますが、何も印刷されません。

これらの要素にアクセスできない理由/それらにアクセスする方法に関するアイデアはありますか? enter image description here

21
sebradloff

親ビューはコンテナビューではないため、サブビューにはアクセスできません。アクセシビリティプログラミングガイドのセクション iOSアプリをアクセス可能にする から:

アクセシビリティの観点から見ると、カスタムビューは個別のビューまたはコンテナビューです。個々のビューには、アクセス可能にする必要がある他のビューは含まれていません。

一方、コンテナビューには、ユーザーが操作できる他の要素が含まれています。

サブビューをアクセス可能にするには、親ビューがUIAccessibilityに、-isAccessibilityElementからNOを返し、UIAccessibilityContainerプロトコルのメソッドを実装することにより、アクセシビリティコンテナーであることを伝える必要があります。

34
quellish

私のためにそれを修正したのは、√インターフェースビルダーで有効にされる「アクセシビリティ」ボックスをチェックすることでした。

enter image description here

IBで機能しない場合は、ビューのisAccessibilityElementプロパティをtrueに設定してみてください。

お役に立てば幸いです。

0
Patrick Ridd