Nightwatch属性包含多个可接受的值

时间:2017-09-07 17:08:42

标签: nightwatch.js

我有一个成功的测试



Human




但就我的目的而言,某些属性'包含' foo'或者' bar'。我想知道如何编写这种测试,以便Nightwatch不会报告任何测试失败。

2 个答案:

答案 0 :(得分:1)

您可以分两步测试属性是否包含'foo'或'bar':

  1. 使用getAttribute()attribute()
  2. 获取属性值
  3. 将正则表达式与值
  4. 匹配

    使用getAttribute(),使用regex.test()

    browser.getAttribute('someElement', 'someAttribute', function(result) {
        this.assert.value(/foo|bar/.test(result.value), true);
    };
    

    使用attribute(),使用matches()断言:

    browser.expect.element('someElement').to.have.attribute('someAttribute')
        .which.matches(/foo|bar/);
    

答案 1 :(得分:0)

使用.elements()并获取元素结果的长度以避免失败消息。

.elements('css selector','someElement[yourattribute="foo"]',function(result){
    if(result.value.length>0){ //element exists 
       console.log('somelement is here')  
    }
    else{
      console.log('not here')
    }  
});