2016-07-09 2 views
1

В Geb и WATIR есть определенные ключевые слова, которые мы используем для посещения page_url, которые мы указали в классе страниц. Например. to ключевое слово в Geb и visit ключевое слово WATIR.страница объект: посещение <page_url> в nightwatch.js

То, что мы можем использовать в nightwatch.js. Это то, что я пытался, но он дает ошибку:

Я пробовал:

module.exports = { 
    url: function() { 
     return this.api.globals.launchUrl + "/goto/desiredPage.html"; 
    }, 
    commands: [pageCommands], 
    elements: {} 
}; 

В классе страницы я использую его как:

desiredPage 
      .url() 
      .foo() 
      .bar(); 
client.end(); 

но он дает ошибку .url is not a function.

ответ

0

Вы можете увидеть примеры NightWatch внутри NightWatch папки, например:

[page-objects/home.js] 
var searchCommands = { 
    submit: function() { 
    this.waitForElementVisible('@submitButton', 3000) 
     .click('@submitButton') 
     .api.pause(1000); 
    return this; // Return page object for chaining 
    } 
}; 

module.exports = { 
    url: 'http://google.com', 
    commands: [searchCommands], 
    elements: { 
    searchBar: { selector: 'input[name=q]' }, 
    submitButton: { selector: 'button[type=submit]' } 
    } 
}; 

, а затем в тесте:

/* jshint expr: true */ 
module.exports = { 
    'Demo Google search test using page objects' : function (client) { 
    var homePage = client.page.home(); 
    homePage.navigate(); 
    homePage.expect.element('@searchBar').to.be.enabled; 

    homePage 
     .setValue('@searchBar', 'Nightwatch.js') 
     .submit(); 

    var resultsPage = client.page.searchResults(); 
    resultsPage.expect.element('@results').to.be.present.after(2000); 
    resultsPage.expect.element('@results').to.contain.text('Nightwatch.js'); 
    resultsPage.expect.section('@menu').to.be.visible; 

    var menuSection = resultsPage.section.menu; 
    menuSection.expect.element('@web').to.be.visible; 
    menuSection.expect.element('@video').to.be.visible; 
    menuSection.expect.element('@images').to.be.visible; 
    menuSection.expect.element('@shopping').to.be.visible; 

    menuSection.productIsSelected('@web', function(result) { 
     this.assert.ok(result, 'Web results are shown by default on search results page'); 
    }); 

    client.end(); 
    } 
}; 

так "URL()" команда на страницах не существует вас необходимо определить URL-адрес на странице и вместо этого использовать «navigate()».