UIを起動するプロジェクトでXcodeをテストするには、ロードブロックを押します。Xcode UI Testingカスタムクラスのテキストフィールドにテキストを入力する方法
UITextField
のサブクラスで、RSCustomTextField
と呼ばれ、UIのカスタマイズがあります。テキストフィールドとボタンを含むRSSearchHeadView
に追加されます。これは、どちらの要素も任意の子孫がキーボードフォーカスを持っているsearchField.typeText("abc")
エラー表示にクラッシュしapp.otherElements["Search field"]
として
そのカスタムクラス以来app.textfields["Search field"]
としてテキストフィールドを照会するので、イムことができない、それが表示されます。。
要素上のtap()
以降であっても。注意すべき点は、アクセシビリティ特性をサブクラスとテキストフィールドにUIAccessibilityTraitSearchField
として設定してみましたが、違いはありません。アプリ上でdebugDescription
を印刷
func testSearchIcon() {
let searchField = app.otherElements["Search field"]
searchField.tap()
searchField.typeText("abc")
app.keys["delete"].tap()
XCTAssertFalse(searchDubizzleElement.hittable)
}
は、次のような出力が得られます。
Element subtree:
→Application 0x7fc1b3f3aa00: {{0.0, 0.0}, {375.0, 667.0}}, label: 'myappname-masked'
Window 0x7fc1b3f439b0: Main Window, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f55c20: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f43440: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f31830: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f61ff0: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f52820: traits: 8589934592, {{0.0, 0.0}, {375.0, 64.0}}
Other 0x7fc1b3f4e190: traits: 8589934592, {{0.0, 0.0}, {375.0, 64.0}}
Button 0x7fc1b3f3a250: traits: 8589934593, {{5.0, 20.0}, {44.0, 44.0}}, label: 'search icon right'
Other 0x7fc1b3f349b0: traits: 8589935616, {{15.0, 20.0}, {345.0, 39.0}}, label: 'Search field'
Image 0x7fc1b3f3b3b0: traits: 8589934596, {{139.0, 22.0}, {97.0, 30.0}}, identifier: 'logo'
Button 0x7fc1b3f537a0: traits: 8589934593, {{326.0, 20.0}, {44.0, 44.0}}, label: 'your account icon'
CollectionView 0x7fc1b3f32450: traits: 35192962023424, {{0.0, 64.0}, {375.0, 603.0}}
Cell 0x7fc1b3f1e230: traits: 8589934592, {{0.0, 64.0}, {375.0, 50.0}}
......
私はちょうどそれをストーリーボードに追加するUITextFieldをサブクラス化しようとしました、そして、 'debugDescription'はその要素をTextFieldに見せます。 'RSCustomTextField'は本当にUITextFieldのサブクラスですか? –
"app.searchFields.element"を試しましたか? – Che
@TomasCaminあなたは正しいです。ビューコントローラに直接追加されませんでした。 'RSSField'カスタムクラスのボタンを単に保持する' RSSearchHeadView'という別のカスタムビューの中にありました。私は質問を更新しました。私の悪い。どんな助け? – carbonr