2015-10-28 5 views
9

Der folgende UI-Testcode wird erfolgreich auf das UISearchBar-Element tippen. Die Softwaretastatur wird angezeigt und die Suchleiste sieht so aus, als hätte sie den Fokus. (. Dh es beseelt, als ob jemand es angezapft)XCode 7 UI-Test - Text kann nicht in die Suchleiste eingegeben werden

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

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

jedoch Typetext nicht mit:

UI Testing Failure - Weder Element noch ein Nachkomme hat Tastatur Fokus. Element:

Hinweis: Hardware-> Tastatur-> Hardware-Tastatur anschließen wird ein- und ausgeschaltet. Dies löste das gleiche Problem für Textfelder, aber die Suchleiste schlägt immer noch fehl.

+1

Warum verwenden Sie 'otherElements'? Kannst du es mit 'searchBars' versuchen? –

+0

Ich sehe kein searchBar-Element, aber ich habe versucht, SearchFields. Leider konnten keine Übereinstimmungen gefunden werden. Also habe ich den UI-Recorder benutzt und XCode hat das Element mit anderenElements identifiziert. Scheint der einzige Weg zu sein, auf den ich zugreifen kann. Ich nehme an, das ist abnormal? Haha. Konnten Sie mit dem Befehl searchFields auf eine UISearchBar zugreifen? – Stephen

+0

Was passiert, wenn Sie versuchen, das Element mit verschiedenen Methoden zu finden? Wie 'staticTexts()' oder 'elementBoundByIndex()'? Simuliert das iPad oder iPhone? – cakes88

Antwort

2

habe ich die folgende Problemumgehung erfolgreich:

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

Diese Suchleiste in Sicht effektiv scrollt und tippt darauf zu konzentrieren, danach typeText() verwendet werden kann.

6

habe ich etwas gefunden:

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

Es sieht seltsam aus, aber es funktioniert für mich.

+0

aber was, wenn ich SearchField mit zugänglichem Bezeichner identifizieren möchte? Weil es Probleme verursacht, während wir mehrsprachige Unterstützung anbieten. –

1

Warten Sie nur ein paar Sekunden und es wird funktionieren!

Verwandte Themen