为Cordova React混合应用程序编写Appium Nightwatch测试

时间:2016-08-03 21:56:38

标签: cordova appium nightwatch.js saucelabs

我不知道怎么写一个夜间表Appium测试。如果夜班已经通过浏览器对象,如何获取驱动程序对象?

这是我到目前为止所拥有的:

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(),
};

我在SauceLabs上运行它,它在.waitForElementVisible('.error-page .title')

时失败了

任何帮助都会非常感谢!

2 个答案:

答案 0 :(得分:0)

尝试使用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(),
};

Nightwatch具有良好的页面对象结构,我试着在最近2周内使用夜视和appium并且它不能很好地协同工作,尤其是多页移动应用程序。我认为你应该找到另一个与Appium一起工作的库,我也在寻找它

答案 1 :(得分:0)

我已经明白了。

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(),
};

由于Cordova包装了DOM元素..我们需要一种方法来访问这些元素以便测试它们。     调用browser.contexts会为您提供一个数组,即可用上下文的['NATIVE','WEBVIEW']。     现在,您只需设置浏览器对象browser.setContext(context['value'][1])的上下文。