2015-10-28 9 views
9

Następujący kod testu interfejsu użytkownika pomyślnie dotknie elementu UISearchBar. Pojawia się klawiatura oprogramowania, a pasek wyszukiwania wygląda tak, jakby się skupił. (Tj. Nie animuje jakby ktoś go stuknął)Kod X 7 Testowanie interfejsu użytkownika - nie można wpisać tekstu w pasku wyszukiwania.

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

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

Jednak TypeText nie powiedzie się z:

UI Testing Failure - Ani elementem ani żaden potomek ma klawiatury Przed ostrość. Element:

Uwaga: Hardware> Keyboard-> Podłączyć Sprzętowa klawiatura jest wyłączane. Rozwiązało to ten sam problem dla pól tekstowych, ale pasek wyszukiwania wciąż nie działa.

+1

Dlaczego używasz 'otherElements'? Czy możesz spróbować z 'searchBars'? –

+0

Nie widzę elementu searchBar, ale wypróbowałem searchFields. Niestety nie znaleziono żadnych dopasowań. Użyłem więc nagrywarki UI, a XCode zidentyfikował ten element z innymi Elementami. Wygląda na to, że jestem jedynym sposobem, w jaki mogę uzyskać do niego dostęp. Zgaduję, że to nienormalne? Ha ha. Czy byłeś w stanie uzyskać dostęp do UISearchBar za pomocą polecenia searchFields? – Stephen

+0

Co się stanie, gdy spróbujesz znaleźć element różnymi metodami? Jak 'staticTexts()' lub 'elementBoundByIndex()'? Czy to jest symulacja iPada lub iPhone'a? – cakes88

Odpowiedz

2

użyłem następujące obejścia z powodzeniem:

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

To skutecznie przewija pasek wyszukiwania w polu widzenia i krany go skupić, po tym typeText() mogą być użyte.

6

znalazłem coś:

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

wygląda dziwnie, ale to działa na mnie.

+0

, ale co jeśli chcę zidentyfikować searchField przy użyciu dostępnego identyfikatora? Ponieważ powoduje problem, gdy zapewniamy wsparcie w wielu językach. –

1

Po prostu poczekaj kilka sekund, a zadziała!

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