2016-08-03 3 views
0

Ich bin mir nicht sicher, wie man einen Nightwatch Appium Test schreibt. Wie bekomme ich das Treiberobjekt, wenn Nightwatch das Browserobjekt bereits passiert?Schreiben von Appium Nightwatch Tests für Cordova React hybride apps

Hier ist, was ich bisher:

export default module.exports = { 
    'Displays error page`': (browser) => 
    browser 
    // .url(`${browser.launchUrl}`) 
    .pause(10000) 
    .waitForElementVisible('.error-page .title') 
    .assert.containsText('.error-page .title', 'Oops! Wrong url.') 
    .end(), 
}; 

Ich laufe dies auf SauceLabs und es scheitert an .waitForElementVisible('.error-page .title')

Jede Hilfe großer Dank sein würde!

Antwort

0

Versuchen mit XPath:

export default module.exports = { 
    'Displays error page`': (browser) => 
    browser 
    // .url(`${browser.launchUrl}`) 
    .useXpath() 
    .pause(10000) 
    .waitForElementVisible('.error-page .title') // switch to xpath() 
    .assert.containsText('.error-page .title', 'Oops! Wrong url.') 
    .end(), 
}; 

Nachtschwärmer haben auch Struktur von Seite-Objekt, habe ich versucht, Nachtwache und appium letzten 2 Wochen zu verwenden, und es hat nicht gut zusammenarbeiten, vor allem Multi-Seiten für mobile Apps. Ich denke, dass Sie eine andere Bibliothek finden sollten, um mit Appium zu arbeiten, ich suche danach

+0

Danke für Ihre Hilfe. Überprüfen Sie die Antwort, die ich gepostet habe, es ist, was ich verwendet habe, um Nightwatch + Appium-Tests zu betreiben –

0

Ich habe es herausgefunden.

export default module.exports = { 
    'Get ABC Title': browser => 
     browser.contexts(function(context) { 
     browser.setContext(context['value'][1]) 
     }) 
     .waitForElementVisible('.event-cards') 
     .assert.containsText('.event-card h2.title', 'ABC') 
     .end(), 
}; 

Da Cordova die DOM-Elemente umschließt .. müssen wir auf diese Elemente zugreifen, um sie zu testen. Aufruf browser.contexts gibt Ihnen ein Array dh ['NATIVE', 'WEBVIEW'] der verfügbaren Kontexte. Jetzt müssen Sie nur noch den Kontext des Browserobjekts browser.setContext(context['value'][1]) festlegen.

Verwandte Themen