2017-11-10 5 views
0

weiß ich über den Standard Weg, um ein Element zu ziehen:einen exakten Pixel drag in Xcode UITesting Doing

let start = savingsCell.coordinate(withNormalizedOffset: CGVector(dx: 0, dy: 0)) 
let finish = savingsCell.coordinate(withNormalizedOffset: CGVector(dx: 0, dy: -80)) 
start.press(forDuration: 0, thenDragTo: finish) 

Das Problem hierbei ist, dass der Widerstand über die 80 Punkte in den UITableView weiter, die ich angegeben. Gibt es eine Möglichkeit, genau diesen Betrag ohne Physik zu ziehen?

Antwort

1

Sie können die Anzahl der Punkte durch Ziehen erhöhen, indem Sie die Endkoordinate aus der Startkoordinate mithilfe der Methode coordinate(withOffset:) für XCUICoordinate erstellen.

let start = savingsCell.coordinate(withNormalizedOffset: CGVector(dx: 0, dy: 0)) 
let finish = start.withOffset(CGVector(dx: 0, dy: -80)) 
start.press(forDuration: 0, thenDragTo: finish) 

Der Vektor für die normalisierte Methode ist auf die Größe des Elements relativ, aber der Vektor für coordinate(withOffset:) verwendet absoluten Punktwert. (nicht Pixel - so auf Geräten mit @ 2x oder @ 3x Assets, das wird tatsächlich 160 Pixel oder 240 Pixel)