Wie bekomme ich den Wert textfield
in XCODE7 UITesting?Wie bekomme ich den Wert eines XCUIElement?
var b = XCUIApplication().childrenMatchingType(.textField).elementBoundByIndex(0).stringValue
Wie bekomme ich den Wert textfield
in XCODE7 UITesting?Wie bekomme ich den Wert eines XCUIElement?
var b = XCUIApplication().childrenMatchingType(.textField).elementBoundByIndex(0).stringValue
Nehmen wir an, Sie ein Textfeld wie so haben: (. Ich hartzucodieren es Wert ist da ("My Text") im Interesse der Beispiel)
Geben Sie ein Accessibility Label. In diesem Fall gebe ich das Label "Textfeld".
Jetzt ist es Wert zuzugreifen, können Sie so etwas wie tun könnte:
func testExample() {
let app = XCUIApplication()
let textField = app.textFields["Text Field"]
XCTAssertTrue(textField.value as! String == "My Text")
// So basically "textField.value"
}
Auf einer seitlichen Anmerkung: im Zweifelsfall auf, wie bestimmte Eigenschaften eines bestimmten XCUIElement zuzugreifen, fand ich, dass die „debugDescription“ hilft viel.
Zum Beispiel einen Haltepunkt nach der Deklaration von Eigenschaften, den Test ausführen, warten, bis die App an dem Haltepunkt zu stoppen, geht Konsole, Typ „po propertyName.debugDescription“ LLDB, überprüfen Sie die Ausgabe ...
Ich hoffe, dass hilft.
Nehmen wir an, ich möchte die Zeichenfolge erhalten, die für die Navigationsleiste meiner App
Was gedruckt wird ich tat, war ich ein XCUIElement für meine Navigationsleiste erstellt:
XCUIApplication *app = [[XCUIApplication alloc] init];
XCUIElement *navBarTitle = [app.navigationBars elementBoundByIndex:0];
Ich habe dann nach der Erstellung des navBarTitle-Objekts einen Haltepunkt gesetzt und die Debug-Konsole verwendet, um die Details des navBarTitle-Objekts auszudrucken:
Sie sehen in dem Ausdruck der Debug-Konsole, dass es eine SchlüsselKennung genannt wird.
Um diese Zeichenfolge von diesem Objekt zu extrahieren, habe ich ein NSString Objekt die folgende Methode:
NSString *nameofuser = [navBarTitle valueForKey:@"identifier"];
I die XCUIElement navBarTitle verwendet und verwenden dann die Methode ValueForKey. valueForKey extrahiert den Zeichenfolgenwert für die Schlüsselkennung.
Sie können hier über diese Methode nachlesen: NSKeyValueCoding
ValueForKey ist der Schlüssel, um die Antwort auf diese Frage zu entsperren .... pun :) soll
Ich kann das nicht genug! Das "po ..." in lldb ist ein Lebensretter! – rhcpfan
Das letzte kleine Debug-Trick wirklich hilfreich war, Vielen Dank! – smac89