2015-09-24 11 views
9

Gibt es eine Möglichkeit, SFSafariViewController zu automatisieren? Ich mag die Xcode 7 UI-Test-Funktion, aber es scheint, dass SFSafariViewController Automatisierung nicht unterstützt. Einige der von mir getesteten UI-Flows erfordern einen Webbrowser, sodass die App SFSafariViewController verwendet, um sie gegenüber einer Webansicht sicherer zu machen.Sie können SFSafariViewController in UI-Tests automatisieren?

+0

Ich bin auch sehr daran interessiert. Hast du einen Weg gefunden? – Martin

+0

@Martin Leider nichts zu dieser Zeit. –

+0

Es ist mir nicht klar, was Sie genau automatisieren möchten. –

Antwort

2

Wenn es ähnlich ist Erweiterungen starten (derzeit mit direkten Interaktionen gebrochen), versucht, den Bildschirm an der Entnahmestelle, wo das Element Sie suchen ist:

Beispiel für ein Aktionsblatt tippen, die eine Verlängerung startet:

func tapElementInActionSheetByPosition(element: XCUIElement!) { 
    let tableSize = app.tables.elementBoundByIndex(0).frame.size 
    let elementFrame = element.frame 

    // get the frame of the cancel button, because it has a real origin point 
    let CancelY = app.buttons["Cancel"].frame.origin.y 

    // 8 is the standard apple margin between views 
    let yCoordinate = CancelY - 8.0 - tableSize.height + elementFrame.midY 

    // tap the button at its screen position since tapping a button in the extension picker directly is currently broken 
    app.coordinateWithNormalizedOffset(CGVectorMake(elementFrame.midX/tableSize.width, yCoordinate/app.frame.size.height)).tap() 
} 

Hinweis: Sie müssen auf den XCUIApplication-Abfrage-Layer tippen. Das Tippen auf das Element nach Position funktioniert nicht.