断言

内置可扩展的 assert/verify 库在 Nightwatch 实例上可用,作为两个命名空间,包含相同的对元素执行断言的方法

  • .assert - 当断言失败时,测试结束,跳过所有其他断言。
  • .verify - 当断言失败时,测试记录失败并继续执行其他断言。

以下将结束测试
browser.assert.visible('.non_existing');

但是,这只会记录失败并继续执行

browser.verify.visible('.non_existing');

基本断言

来自 Node.js 断言模块 的方法也适用于 .assert/.verify 命名空间,可以使用。

否定(".not")断言

从版本 1.3 开始,所有断言(包括自定义定义的断言)都有一个 ".not" 对应项,可用于断言相反。

因此,诸如 elementNotPresentcssClassNotPresenthidden 之类的断言已过时并被弃用。

示例
describe('Demo .not assertion', function() {
  it('demo test', function(browser) {
    browser.init();
    
browser .assert.not.elementPresent('.not_present') // previously .assert.elementNotPresent() .assert.not.visible('.non_visible') // previously .assert.hidden() .assert.not.urlContains('http://');
// ... }) })

自动重试

默认情况下,Nightwatch 会自动重试失败的断言,最长 5000 毫秒。这可以通过在您的 globals 中设置属性 retryAssertionTimeout(以毫秒为单位)来配置(另请参阅 使用测试全局变量)。

如果达到给定的超时时间,测试运行器将放弃重试并将断言标记为失败。

示例配置

{
  src_folders: ['tests'],
  
test_settings: { default: { launch_url: 'https://nightwatch.node.org.cn',
globals: { myGlobalVar: 'some value', retryAssertionTimeout: 5000 } } } }