2017-11-13 4 views
3

UI Test für eine ios-app, entwickelt in XCode 8 und swift 3.2.Problem beim Xcode-UI-Test in XCode 9

Problem Facing mit ScrollViews, collectionViews nach dem Upgrade XCode umgehen zu 9

ich tippen kann und Zugriff auf die Tasten, StaticTexts, Textfields-Elemente. Aber ich kann nicht auf die collectionviews, scrollviews, tableviews Elemente auf XCode9 und Swift 3.2 tippen oder zugreifen.

Es sei in der vorherigen XCode-Version (das heißt, XCode 8.3) habe ich den Code app.collectionViews.collectionViews.cells.images.element(boundBy: 0).tap()
auf Startseite tippen (collectionViews). Aber dieser Code funktioniert nicht in XCode 9.

Ich habe versucht, das genaue Element mit uitest Aufnahme-Funktion zu bekommen. Durch Aufnahme mit bekam ich den Code -

app.collectionViews.otherElements.containing(.textField, identifier:"StoryboardTitleTextField").children(matching: .collectionView).element.tap(). 

Aber dieser Code funktioniert auch nicht. Wie kann ich das lösen?

Dank

Antwort

2

Kürzlich i konfrontiert auch die ähnliche Art von Problem nach meinem Projekt (Swift 3.2) in XCode 9.

Das Problem Upgrade ist

app.collectionViews.collectionViews.cells.images.element(boundBy: 0).isHittable is returning false. 

Das ist, warum Standard Hahn () Methode funktioniert nicht für hierarchische Elemente.

Ich habe gerade die folgende Prozedur und das hat gut funktioniert.

Schritt 1: wie eine Erweiterung anlegen unten

extension XCUIElement { 
func tryClick() { 
    if self.isHittable { 
     self.tap() 
    } 
    else { 
     let coordinate: XCUICoordinate = self.coordinate(withNormalizedOffset: CGVector(dx:0.5, dy:0.5)) 
     coordinate.doubleTap() 
     //coordinate.press(forDuration: 0.5) 
    } 
    } 
} 

Schritt 2: auf dem Elemente der Instanzmethode oben anstelle der Verwendung von direkten Abgriff() Methode erstellt.

app.collectionViews.collectionViews.cells.images.element(boundBy: 0).tryClick() 

Hinweis: versuchen Sie es mit

CGVector(dx:0.5, dy:0.5) or CGVector(dx:0.0, dy:0.0) 

Hoffe, dass es Ihr Problem lösen wird. Es hat wie ein Zauber für mich funktioniert.

+0

Danke Mahmud. Ausgezeichnete Arbeit, die du gemacht hast. Es funktioniert auch für mich. Kannst du mir sagen, was 'CGVector (dx: 0.5, dy: 0.5)' hier in der Erweiterungsmethode macht? –

+0

@AliAzam Es ist der Koordinate x, y Ort, den Sie auf dieses Element tippen möchten. Bitte lassen Sie mich wissen, ob es Ihr Problem gelöst hat oder nicht. –

+0

Ja, mein Problem ist jetzt gelöst. Danke geschätzt. –

Verwandte Themen