2015-10-28 22 views
9

次のUIテストコードは、UISearchBar要素を正常にタップします。ソフトウェアキーボードが表示され、検索バーにフォーカスがあるように見えます。 (。つまり、誰かがそれをタップかのようにアニメーション化)XCode 7 UIテスト - 検索バーにテキストを入力できません

let searchBar = XCUIApplication().otherElements["accessibility_label"] 

    searchBar.tap() 
    searchBar.typeText("search text") 

はしかし、typeTextはで失敗します。

UIテストの失敗 - どちらの要素も任意の子孫は、キーボード フォーカスを持っています。要素:

注:ハードウェア - > Keyboard->ハードウェアキーボードをオフに切り替えている接続します。これは、テキストフィールドで同じ問題を解決しましたが、検索バーはまだ失敗しています。

+1

なぜあなたは 'otherElements'を使用していますか? 'searchBars'で試してみることはできますか? –

+0

searchBar要素は表示されませんが、searchFieldsを試しました。残念ながら、一致が見つかりませんでした。そこで私はUIレコーダーを使い、XCodeはその要素をotherElementsで識別しました。私がアクセスできる唯一の方法だと思われます。私はそれが異常だと思いますか?ハハ。 searchFieldsコマンドでUISearchBarにアクセスできましたか? – Stephen

+0

異なる方法で要素を見つけようとするとどうなりますか? 'staticTexts()'や 'elementBoundByIndex()'と同じですか?これはiPadまたはiPhoneをシミュレートしていますか? – cakes88

答えて

2

私は正常に次の回避策を使用:

let firstCell = app.cells.elementBoundByIndex(0) 
let start = firstCell.coordinateWithNormalizedOffset(CGVectorMake(0, 0)) 
let finish = firstCell.coordinateWithNormalizedOffset(CGVectorMake(0, 3)) 
start.pressForDuration(0, thenDragToCoordinate: finish) 

app.searchFields.element.tap() 
app.searchFields.element.typeText("search text") 

これは効果的にビューに検索バーをスクロールし、そのtypeText()を使用することができた後、集中することをタップ。

6

私は何かが見つかりました:それは奇妙に見えますが、それは私の作品

let app = XCUIApplication() 
app.tables.searchFields["Search"].tap() 
app.searchFields["Search"].typeText("something") 

を。

+0

しかし、もし私がアクセス可能な識別子を使ってsearchFieldを特定したいのであれば?なぜなら私たちは多言語サポートを提供している間に問題を引き起こしているからです。 –

1

ちょっと待ってからもう一度お試しください!

let searchBar = XCUIApplication().otherElements["accessibility_label"] 
searchBar.tap() 
sleep(5) 
searchBar.typeText("search text") 
関連する問題