学习 NightWatch - 会话功能和自定义方法

Session Capabilities 会话功能

是用于定义所需要的 WebDirver 实现或 Selenium 服务器所提供的浏览器功能

必须在 `nightwatch.conf.js文件中配置关于 ``src_folders``` 文件夹路径

custom-commands 自定义命令

须在配置文件中配置 `custom_commands_path` 属性

该属性值是一个可以包含 多个自定义命令文件夹路径 的 字符串数组

方法名称是文件本身名称

所有 NightWatch 命令都是异步的,自定义方法必须发出完成信号

类式命令

这是推荐形式

// 需要导出一个类构造函数
export default class CustomCommand {
    //  命令函数实例方法
    command() {
        // 两种方法发出完成信号
        // 返回 Promise
        // 通过 emit 触发 complete 事件完成

        // 通过 emit 触发 complete 事件
        this.emit('complete', returnValue)
        // Promise
        return new Promise(resolve => /** ... */)
    }
}

函数式命令

// 需要导出一个函数
// 此函数至少调用一个 NightWatch API
export default {
    command (file, cb) {
        const self = this
        // ...
        return this
    }
}

custom-assertions 自定义断言

须在配置文件中配置 `custom_assertions_path` 属性

该属性值是一个可以包含 多个自定义断言文件夹路径 的 字符串数组

export.assertion = function (definition, expectedTest, msg) {
    this.formatMessage = () => {
        const msg = `Testings ... ${this.negate}`
        return {
            msg,
            args: [`'${expected}'`]
        }
    }
}

custom_reporter 自定义报告器

--reporter 命令行参数

// --reporter FileName
export default {
    write: (results, options, done) => {
        done()
    }
}

外部全局变量

// 配置文件
export default {
    // ...
    reporter: (results, done) => {
        console.log(results)
        done()
    }
    // ...
}

学习 NightWatch - 会话功能和自定义方法
http://localhost:8080/archives/f4ede42a-6633-46f5-9f33-572dfd99fc0b
作者
inksha
发布于
2024年09月14日
许可协议