Po prostu chcę przetestować mój interfejs użytkownika iOS za pomocą funkcji UI Automation, ale utknąłem, gdy trzeba wprowadzić tekst do UITextFields. Dokumentacja mówi, że metoda "setValue (...)" powinna wystarczyć, ale tak nie jest.Automatyzacja "Instrument" iOS Instruments nie działa
zawsze uzyskać ten błąd:
Script threw an uncaught JavaScript error: Unexpected error in -[UIATextField_0x9952690 setValue:], /SourceCache/UIAutomation_Sim/UIAutomation-271/Framework/UIAElement.m line 1142, kAXErrorSuccess on line 15 of login.js, #0 setValue()
Kod wygląda następująco:
var textfields = UIATarget.localTarget().frontMostApp().mainWindow().textFields();
username = textfields["username"];
username.setValue("test");
pola nazwa użytkownika nie jest null lub undefined.
Drugie rozwiązanie było ten projekt JS: https://github.com/alexvollmer/tuneup_js#readme Ma „typeString” metodę pól tekstowych, ale to jest trochę buggy i nie, jeśli chodzi o wprowadzanie cyfr i liter.
Pracuję z iOS6.1, Instruments Wersja 4.6 (46000), Wersja Xcode 4.6 (4H127).
Każda pomoc jest doceniana!
Hmm. Jestem w stanie ustawić wartość pól tekstowych w mojej aplikacji z automatycznym interfejsem użytkownika. Twój kod automatyzacji wygląda poprawnie. Podejrzewam, że coś jest nie tak w świecie Celu C. Czy używasz niestandardowej podklasy 'UITextField'? Czy możesz zbudować fałszywą aplikację z jednym polem tekstowym i spróbować ustawić wartość tego pola na swoim komputerze? To może pomóc w odnalezieniu problemu. –
W innych projektach działa funkcja "setValue()". Myślę, że przyczyną problemu jest niedokończona animacja. gdy użytkownik dotknie pola tekstowego, podstawowy widok zostanie przewinięty do góry, aby był widoczny po wyświetleniu klawiatury. "target.delay (1)" robi to, czego szukałem, a teraz działa funkcja "setValue()". – ralphbert