确定元素是否在 DOM 中存在。

命令 isPresent() 将自动等待元素存在(直到指定超时)。如果找不到元素,则会抛出错误,导致测试失败。您可以通过将 selector 参数指定为对象并将 suppressNotFoundErrors = true 选项传递来抑制找不到元素的错误。

有关在 Nightwatch 中使用 DOM 元素的更多信息,请参阅 查找和交互 DOM 元素 指南页面。

用法

                    .isPresent(selector, [callback])
                
                    .isPresent(using, selector, [callback])
                

示例

module.exports = {
  demoTest(browser) {
    browser.isPresent('#main ul li a.first', function(result) {
      this.assert.equal(typeof result, "object");
      this.assert.equal(result.status, 0);
      this.assert.equal(result.value, true);
    });

    // with explicit locate strategy
    browser.isPresent('css selector', '#main ul li a.first');

    // with selector object - see https://nightwatch.node.org.cn/guide/writing-tests/finding-interacting-with-dom-elements.html#postdoc-element-properties
    browser.isPresent({
      selector: '#main ul li a',
      index: 1,
    });

    browser.isPresent({
      selector: '#main ul li a.first',
      timeout: 2000 // overwrite the default timeout (in ms) to check if the element is present
    });
  },

  demoTestAsync: async function(browser) {
    const result = await browser.isPresent('#main ul li a.first');
    console.log('isPresent result', result);
  }
}

参数

名称 类型 描述
使用
可选
字符串

要使用的定位器策略。见 W3C Webdriver - 定位器策略

选择器 字符串 | 对象

用于定位元素的选择器(CSS/Xpath)。可以是字符串,也可以是指定 元素属性 的对象。

回调 函数

使用结果值调用的回调函数。