2

次の階層があります: ViewController -> TableView -> TableViewCell -> CollectionView -> CollectionViewCell -> UIImage

collectionView 内の tableViewCell には、4 つのセルがあります。各セルには固有のラベルがあります。

ユーザーが collectionViewCell をタップすると、セルが選択され、UIImageView も強調表示されます。この場合、これはそこに別の画像があることを意味します。UIImageView のアクセシビリティを有効にし、特性をボタンと画像の両方に設定して、これらの XCUIElementTypes にアクセスしようとしています。

画像ビューがあるセルに一意の識別子がある場合でも、UIImageView の結果が複数あることが常に通知されるため、UITest を機能させることができませんでした。

セルが選択されたことを確認するにはどうすればよいですか?

記録機能を使用すると、次のようになります。 let whatIsYourFilingStatusCellsQuery = XCUIApplication().tables.cells.containingType(.StaticText, identifier:"Single").childrenMatchingType(.Image).matchingIdentifier("btn_unselected").tap()

4

2 に答える 2

1

@Cheは正しい考えを持っています。

ではdidSelectItemAtIndexPath:、次のようにしました。

cell.accessibilityIdentifier = @"isSelected";

次に、テストファイルで:

XCTAssertEqualObjects(randomCellToTap.value, @"isSelected");

反対のシンインインもやりますdidDeselect...

于 2016-12-09T17:25:13.157 に答える
-1

私は本当にかなりの解決策を持っていません。しかし、セルが選択されていることをアサートする方法は 1 つしかありません。選択時にセルにいくつかのプロパティを設定します。たとえば、accessibilityIdentifier には一意の ID があり、accessibilityValue には必要な情報 ("selected=true" または "selected") が含まれます。

これらのプロパティにアクセスできる UPD:

ここに画像の説明を入力

于 2015-12-03T11:35:35.150 に答える