/ / jak uzyskać wartość XCUIElement? - xcode7, testowanie interfejsu użytkownika xcode

jak zdobyć wartość XCUIElement? - xcode7, xcode-ui-testing

Jak uzyskać wartość textfield w XCODE7 UITesting?

var b = XCUIApplication().childrenMatchingType(.textField).elementBoundByIndex(0).stringValue

Odpowiedzi:

10 dla odpowiedzi № 1

Załóżmy, że masz takie pole tekstowe:

wprowadź opis obrazu tutaj

(Mam tam na stałe wartość („Mój tekst”) dla przykładu.)

Nadaj mu etykietę dostępności. W tym przypadku nadaję mu etykietę „Pole tekstowe”.

Aby uzyskać dostęp do jego wartości, możesz zrobić coś takiego:

func testExample() {

let app = XCUIApplication()
let textField = app.textFields["Text Field"]
XCTAssertTrue(textField.value as! String == "My Text")

// So basically "textField.value"
}

Na marginesie: gdy masz wątpliwości, jak uzyskać dostęp do niektórych właściwości danego XCUIElement, stwierdziłem, że „debugDescription„bardzo pomaga.

Na przykład ustaw punkt przerwania za właściwościądeklaracja, wykonaj test, poczekaj, aż aplikacja zatrzyma się w punkcie przerwania, przejdź do konsoli lldb, wpisz „po propertyName.debugDescription”, sprawdź dane wyjściowe ...

wprowadź opis obrazu tutaj

Mam nadzieję że to pomogło.


2 dla odpowiedzi nr 2

Załóżmy, że chcę uzyskać ciąg, który zostanie wydrukowany dla paska nawigacji mojej aplikacji

wprowadź opis obrazu tutaj

Stworzyłem XCUIElement dla mojego paska nawigacji:

XCUIApplication *app = [[XCUIApplication alloc] init];
XCUIElement *navBarTitle = [app.navigationBars elementBoundByIndex:0];

Następnie ustawiłem punkt przerwania po utworzeniu obiektu navBarTitle i użyłem konsoli debugowania do wydrukowania szczegółów obiektu navBarTitle:

wydruk

Na wydruku konsoli debugowania widać, że jest klawisz nazywa identyfikator.

Aby wyodrębnić ten ciąg z tego obiektu, utworzyłem obiekt NSString za pomocą następującej metody:

NSString *nameofuser = [navBarTitle valueForKey:@"identifier"];

Użyłem navCarTitle XCUIElement, a następnie zastosowałem metodę valueForKey. wartośćForKey wyodrębnia wartość ciągu dla identyfikatora klucza.

Możesz przeczytać o tej metodzie tutaj: NSKeyValueCoding

valueForKey jest KLUCZEM do odblokowania odpowiedzi na to pytanie .... kalambur zamierzał :)