2015-10-28 16 views
9

Il seguente codice di test dell'interfaccia utente tocca con successo l'elemento UISearchBar. Appare la tastiera del software e sembra che la barra di ricerca abbia il focus. (. Cioè anima come se qualcuno batté)Test UI XCode 7 - Impossibile digitare il testo nella barra di ricerca

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

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

Tuttavia, TypeText non riesce con:

UI Test Failure - Né elemento né alcuna discendente ha tastiera messa a fuoco. Elemento:

Nota: Hardware-> tastiere-> Collegare tastiera hardware è attivata off. Questo ha risolto lo stesso problema per i campi di testo, ma la barra di ricerca continua a non funzionare.

+1

Perché stai utilizzando 'otherElements'? Puoi provare con 'searchBars'? –

+0

Non vedo un elemento SearchBar ma ho provato SearchFields. Sfortunatamente non è stato possibile trovare corrispondenze. Quindi ho usato il registratore UI e XCode ha identificato l'elemento con altri elementi. Sembra essere l'unico modo in cui posso accedervi. Immagino che sia anormale? Haha. Sei stato in grado di accedere a UISearchBar con il comando searchFields? – Stephen

+0

Cosa succede quando provi a trovare l'elemento con metodi diversi? Come 'staticTexts()' o 'elementBoundByIndex()'? Questo simula iPad o iPhone? – cakes88

risposta

2

ho usato la seguente soluzione con successo:

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") 

Questo Scorre in modo efficace la barra di ricerca in vista e rubinetti è di mettere a fuoco, dopo che typeText() può essere utilizzato.

6

ho trovato qualcosa:

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

Sembra strano, ma funziona per me.

+0

ma cosa succede se voglio identificare searchField usando l'identificatore accessibile? Perché causa problemi mentre forniamo supporto multilingue. –

1

Basta aspettare qualche secondo e funzionerà!

let searchBar = XCUIApplication().otherElements["accessibility_label"] 
searchBar.tap() 
sleep(5) 
searchBar.typeText("search text")