2016-04-14 16 views
43

Sto provando a generare un UItest in Xcode. Quando provo a strisciare UIView ottengo un errore:Errore corrispondenza evento con data e ora: impossibile trovare l'elemento corrispondente

Timestamped Event Matching Error: Failed to find matching element 

error window

enter image description here

Questo accade anche se provo a toccare UIView.

+0

Puoi spiegare un po 'di più? –

+0

provo a scorrere o toccare su UIview che suppone di fare qualcosa (ha un ricognitore di gesti) ma quando faccio il gesto succede questo errore. l'unico modo per farlo funzionare è con le query ma è davvero complicato e sono sicuro che c'è un altro modo – shay

+0

Ho esattamente lo stesso problema –

risposta

0

Per registrare un nuovo test, non penso ci sia ancora una soluzione. Tuttavia, se si utilizza un'estensione che forza il tocco con un test già esistente, funziona.

Esempio di utilizzo:

extension XCUIElement { 

    func forceTapElement() { 
     if self.hittable { 
      self.tap() 
     } 
     else { 
      let coordinate: XCUICoordinate = self.coordinateWithNormalizedOffset(CGVectorMake(0.0, 0.0)) 
      coordinate.tap() 
     } 
    } 
} 

func testSomethingWithCells() { 

    let app = XCUIApplication() 
    let cells = app.tables.cells 
    sleep(1) 
    cells.elementBoundByIndex(0).forceTapElement() 
} 

È possibile controllare il post originale qui:

Xcode UI test - UI Testing Failure - Failed to scroll to visible (by AX action) when tap on Search field "Cancel' button

35

È necessario verificare che l'opzione 'Accessibilità' è abilitato per l'UIView oggetto che si sta scorrendo da, ad esempio:

enter image description here

+2

Questo era per me. Questa risposta dovrebbe essere accettata! – user1366265

+0

L'attivazione dell'accessibilità per una visualizzazione Web ha causato il fallimento dei test durante la risoluzione del testo in WebView. Disattivazione dell'accessibilità per l'UIView che ospita WebView ha consentito il test. Quindi attenzione. – askielboe

+0

Come un altro punto per farlo funzionare per me ho dovuto dargli un'etichetta – SeanLintern88

0

Sono stato a volte in questo problema. Eliminare la directory dell'app da DerivedData sembra aiutare.

0

Una soluzione che ha funzionato per me era identificare l'oggetto in modo diverso.
In Xcode 8 sono stato in grado di utilizzare il seguente:

XCUIApplication().tables.cells["Camera Roll"].buttons["Camera Roll"].tap() 

Con Xcode 9 ho ottenuto l'errore descritto in questa questione. Finito utilizzando il seguente, che ha funzionato (al beit più flakey rispetto all'opzione originale)

XCUIApplication().cells.element(boundBy: 1).tap()