Ich verfolge das Swift-Beispiel unter der Überschrift Gibt es eine Möglichkeit, ein spezifisches Element von FAQ zurückzugeben, um zu versuchen, eine Eigenschaft von einem Element abzurufen.GREYActionBlock zum Zurückgeben bestimmter Elementeigenschaften funktioniert nicht
Ich habe das Beispiel direkt aus den FAQ kopiert, aber nach dem Aufruf von performAction hat textValue immer noch seinen ursprünglichen Wert. Unabhängig davon, auf was ich den Inout-Parameter im Aktionsblock eingestellt habe, behält die Variable ihren ursprünglichen Wert bei, sobald die Aktion zurückkehrt.
Was fehlt mir? Hier ist der Code, ich habe:
func grey_getText(inout text: String) -> GREYActionBlock {
return GREYActionBlock.actionWithName("get text",
constraints: grey_respondsToSelector(Selector("text")),
performBlock: { element, errorOrNil -> Bool in
text = element.text
print("in block: \(text)")
return true
})
}
und in der Testmethode:
var textValue = ""
let domainField = EarlGrey().selectElementWithMatcher(grey_text("Floor One"))
domainField.assertWithMatcher(grey_sufficientlyVisible())
domainField.performAction(grey_getText(&textValue))
print("outside block: \(textValue)")
druckt
in block: Floor One
outside block:
Ich bin mit XCode Version 7.3.1
Dies scheint etwas mit der Art und Weise zu tun, wie Sie Blöcke verwenden, erhalten Sie das gleiche Ergebnis, wenn Sie GREYActionBlock.actionWithName (... 'direkt auf eine Variable zuweisen und verwenden (anstatt die Funktion' grey_getText 'um es zu bekommen)? – Gautam