web-dev-qa-db-ja.com

xcode:タイムスタンプ付きイベントマッチングエラー:一致する要素が見つかりませんでした

XCUITesting関数をいくつか記録しようとしています。このエラーが発生します。

Timestamped Event Matching Error: Failed to find matching element

これはXcodeのバグですか、UIの複雑さに関する問題ですか?

43
emoleumassi

非常に複雑なアプリでも、長い間同じ問題が発生していました。キーはすべてisAccessibilityElementがYESに設定されていることです。 UIのテストとアクセシビリティは密接に関連しています。私がそれについて考える方法は、デバイスは要素と対話することができる必要があるということです。なぜなら、表面上、ユーザーはそうすることができないからです。

私はこれを2回行いました:

  1. cellForRowAtIndexPath-cell.isAccessibilityElement = YES

  2. awakeFromNibUITableViewCellサブクラス-self.isAccessibilityElement = YES

お役に立てば幸いです。

6
ArielSD

アイテムのisAccessibilityElementプロパティを操作してみてください。私が知る限り、tableViewのようなコンテナーは、コンテナー内に含まれるアイテムにアクセスできるようにするために、このプロパティをNOに設定する必要があります

https://developer.Apple.com/library/ios/documentation/UIKit/Reference/UIAccessibility_Protocol/#//Apple_ref/occ/instp/NSObject/isAccessibilityElement からの引用:

支援アプリケーションは、アクセシビリティ要素によって表されるオブジェクトに関する情報のみを取得できます。したがって、障害を持つユーザーがアクセスできるカスタムコントロールまたはビューを実装する場合は、このプロパティをYESに設定します。このプラクティスの唯一の例外は、アクセス可能である必要がある他のアイテムのコンテナーとして機能するビューです。

1
Kamilton

以下のように、キーパス値をUI要素に追加する必要があります。例として、tableviewを使用している場合は、ストーリーボードでそれを選択し、Identity Inspectorをクリックします。キーに次の値isAccessibilityElementを入力し、下の画像に示すようにチェックボックスをオンにします。

enter image description here

また、UITableViewCellまたはサブクラスをタップできない場合は、以下に示すように、[アクセシビリティ]オプションを有効にします。

enter image description here

今後は問題なく動作するはずです。

0
Jay Mayu