複数のUIPickerViewを持つビューコントローラ用のXcode UIテストケースを開発する際、XCUITest内でピッカーを一意に識別できるようにするいくつかのバグがありました。XCUITest中に複数のUIPickerViewsにアクセシビリティ識別子を指定する方法
しかし、私は確認しても、これは、UIPickerViewのために全く動作しません:
何「はず」の仕事は、単にそのようにストーリーボードの中から、アクセス識別子、またはアクセシビリティラベルを設定することですUIPickerViewに対してaccessibilityLabelプロパティとaccessibilityIdentifierプロパティが設定されます。そして、はい、私はどちらか一方または両方でそれを試しました。私はプログラム的にどちらか一方または両方を設定しようと試みました。 XCUITestケース内の以下の行は関係なく、ピッカーを見つけるために失敗します。
XCUIElement *shippingMethodPicker = app.pickerWheels[@"Shipping method"];
[shippingMethodPicker adjustToPickerWheelValue:@"USPS Media Mail"];
既知の問題であり、解決策は、ビューコントローラもUIPickerViewAccessibilityDelegateを行い、実装するだろうということを思われます - (NSString *)pickerView:(UIPickerView *)pickerView accessibilityLabelForComponent:(NSInteger)コンポーネントデリゲートメソッド。
Apple API Documentationは、アクセシビリティラベルを各pickerWheelsコンポーネントに一意に適用するために必要なものを正確に記述しているようです。
しかし、これも盗聴され、pickerViewパラメータは、実際にUIPickerView *ないが、原因デリゲートメソッドで実装不良にこのstackoverflowのリンクUnable to get pickerView.tag in -pickerView:accessibilityLabelForComponent: method
に参照されるように、あなたはデリゲートがされUIPickerViewを決定することはできません複数のピッカーを持つビューでは役に立たないために呼び出されました。
ストーリーボードのアプローチがうまくいっていて、アクセシビリティデリゲートも迷惑をかけると、XCUITestテストケース内のビューコントローラで2つ以上のUIPickerViewを一意に識別する方法を見つけることができませんでした。
誰でも解決策がありますか?