2015-08-05 18 views

Antwort

9

Nehmen wir an, Sie ein Textfeld wie so haben: (. Ich hartzucodieren es Wert ist da ("My Text") im Interesse der Beispiel)

enter image description here

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 ...

enter image description here

Ich hoffe, dass hilft.

+0

Das letzte kleine Debug-Trick wirklich hilfreich war, Vielen Dank! – smac89

2

Nehmen wir an, ich möchte die Zeichenfolge erhalten, die für die Navigationsleiste meiner App

enter image description here

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:

print out

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

+0

Ich kann das nicht genug! Das "po ..." in lldb ist ein Lebensretter! – rhcpfan

Verwandte Themen