Esiste un modo per automatizzare SFSafariViewController? Mi piace la funzione di test dell'interfaccia utente Xcode 7, ma sembra che non supporti l'automazione SFSafariViewController. Alcuni dei flussi di interfaccia utente che sto testando richiedono un browser Web, quindi l'app utilizza SFSafariViewController per renderlo più sicuro rispetto a una visualizzazione Web.Un modo per automatizzare SFSafariViewController nei test dell'interfaccia utente?
9
A
risposta
2
Se è simile a lanciare estensioni (attualmente rotto con interazioni dirette), provare toccando lo schermo nel punto in cui l'elemento che stai cercando è:
Esempio di toccando un foglio di azione che lancia un interno:
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()
}
Nota: è necessario toccare il livello di query XCUIApplication. Toccando l'elemento in base alla posizione non funziona.
Sono anche molto interessato a questo. Hai trovato una sorta di modo per aggirare questo? – Martin
@Martin Sfortunatamente niente in questo momento. –
Non mi è chiaro cosa si desidera automatizzare esattamente. –