2015-11-03 26 views
12

Gece saati "0.8.6" kullanıyorum. sayfalarında belgelere Başına, bir pages/login.js dosya oluşturdum ve birlikte yapılandırma dosyası dizini ekleyin:Sayfalar nesnesini Nightwatch'da kullanma JS

module.exports = { 
    url: function() { 
    return this.launchUrl; 
    } 
}; 

dokümantasyon this.api bahseder, ancak istemci/tarayıcı bir özellik bu. Bununla birlikte, this.launchUrl görünüşte mevcuttur.

module.exports = { 
    'Login page has a login button' : function (browser) { 
    browser 
     .url(browser.page.login().url()) 
     .waitForElementVisible('body', 10000) 
     .assert.containsText('button', 'SIGN IN') 
     .end(); 
    } 
} 

testi şimdi başarısız:

onu kullanmak için mevcut bir testi değiştirdi. .url, localhost: 3000 olan this.launchUrl değerinin yerine data:, ile selenium açmaya çalışır.

sayfa nesne

görünüşte giriş testinde bağlamında değerlendirildiğinde, bu yüzden sayfa nesnesinde bu this.launchUrl olmalıdır. Gördüğüm kaynağa dalmak, bir şekilde karıştırımda da sayfa sarıcı nesneleri var.

Doğru bir şekilde nasıl kullanabilirim ve sayfa nesnesini 0.8.6'da kullanabilirim?

cevap

6

Sana login.js sayfasını çağırmak için bir Var eklemeyi deneyebilirsiniz düşünüyorum. . ("Her sayfa nesnesi belirlenmiş bir klasörde, ayrı bir dosyada bulunan yer almalıdır Gece Bekçileri klasöründen sayfa nesnelerini okur ya - :

module.exports = { 
    'Login page has a login button' : function (browser) { 

    var LoginPage = browser.page.login(); 
     LoginPage.navigate(); 

     LoginPage 
     .waitForElementVisible('body', 10000) 
     .assert.containsText('button', 'SIGN IN') 
     .end(); 
    } 
} 
+0

Ben sadece geri dönebildi s. Bana bir ödül verdiğinden emin değilim, eğer bana haber vermezseniz ve bunu nasıl yapacağımı anlayacağım –

1

Yani zorunda dokümanlara göre: Böyle klasörleri) page_objects_path yapılandırma özelliğinde belirtilen. "

page_objects_path dizininizi yapılandırdınız mı?

Bunu yaptıktan sonra aşağıdaki gibi, bu klasördeki bir js dosyası oluşturabilirsiniz:

module.exports = function(client) { 
    return { 
    gotoUrl: function() { 
     return client 
     .url(client.launchUrl); 
    }, 
    }; 
}; 

Ve gibi o zaman testi yazabilirsiniz:

module.exports = { 
    'Login page has a login button': (browser) => { 
    browser.page.pagescriptname() 
     .gotoUrl() 
     .waitForElementVisible('body', 10000) 
     .assert.containsText('button', 'SIGN IN') 
     .end(); 
    } 
} 

sahip olduğundan emin olun launch_url yapılandırdığınız nightwatch.js dosyasında (veya bu proje için yaptığım gibi) (nightwatch.conf.js dosya aracılığıyla) dinamik olarak değiştirilebilir