如何使用Nightwatch.js创建新的浏览器实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Nightwatch.js创建新的浏览器实例相关的知识,希望对你有一定的参考价值。

我正在尝试用夜视测试当用户登录时已经在另一个浏览器中登录时,它会自动从第一个会话中退出。

但我不知道如何创建一个新的浏览器实例。

这就是我的代码的样子:

//有关编写Nightwatch测试的信息,请参阅// http://nightwatchjs.org/guide#usage

module.exports = {

'Landing Page': function (browser) {
  // automatically uses dev Server port from /config.index.js
  // default: http://localhost:8080
  // see nightwatch.conf.js
    const devServer = browser.globals.devServerURL;

    browser
        .url(devServer)
        .waitForElementVisible('#app', 5000)
        .assert.urlContains('login')
        .assert.title('Customer Relation Manager')
        .assert.elementPresent('.login')
        .assert.containsText('.login-header', 'Log into CRM')
},

'A User not logged in will be redirected to login page': function (browser) {
    browser
        .url('http://localhost:8080/cust')
        .pause(1000)
        .assert.urlContains('login')
},

'A User can login': function (browser) {
    browser
        .setValue('input[type=text]', '********')
        .setValue('input[type=password]', '*******')
        .click('#submit')
        .pause(1000)
        .assert.urlContains('dashboard')
        .assert.containsText(".header-logo", "CRM V3")
},

'A User who is logged in cannot access the Login page again': function (browser) {
    browser
        .url('http://localhost:8080/login')
        .pause(1000)
        .assert.urlContains('dashboard')
        // .end();
},

'A user can refresh the page and redirect to the same page': function (browser) {
    browser
        .refresh()
        .pause(1000)
        .assert.urlContains('dashboard')
},

'A User can logout': function (browser) {
    browser
        .click('.header-user-info')
        .pause(1000)
        .assert.urlContains('login')
        .assert.containsText('.login-header', 'Log into CRM')
        .end();
  }

}

答案

在测试中添加一个beforeEach钩子并向其中添加Deletecookies。因此,对于每个测试,都会启动一个新的浏览器实例。

beforeEach: function (browser) {
    browser.maximizeWindow();
    browser.deleteCookies();
},

以上是关于如何使用Nightwatch.js创建新的浏览器实例的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 nightwatch.js 或 javascript 列出具有共同属性值的相同元素?

如何使用页面对象在 Nightwatch.js 中运行多个 chai 断言?

Nightwatch.js如何访问安全网站?

使用 nightwatch 检查 http 状态码

Nightwatch测试在Headless chrome模式下找不到元素

Java后台创建新的URl,如何继承浏览器session