如何使用Node.js + Mocha + Selenium在页面上声明该元素?

时间:2017-02-10 12:52:24

标签: javascript node.js selenium mocha

我想验证网页上是否存在该元素。据我所知,硒v3已被删除" isElementPresent"功能和其他一些方法来断言这一点。如果没有driver.isElementPresent,你能给我一个如何做到这一点的例子吗?

例如,我必须验证"密码"字段存在于页面上 - 如果传递了true测试,如果为false - 测试失败。

我怎样才能使用Node.js + Mocha + Selenium? 我怎么断言,那个元素存在?

var element = driver.findElement(webdriver.By.id("password"));
assert.**???**(element)

3 个答案:

答案 0 :(得分:0)

只需用

之类的东西抓住它来检查元素
var element = document.querySelector("input[type='password']");

更好的是给元素一个id并以那种方式获得

var element = document.getElementById("password");

然后检查它

if(element) {
    // stuff
}

答案 1 :(得分:0)

我刚遇到同样的问题,我想出了一个解决方案。

对于我的方法,我使用了以下内容:

assert.doesNotThrow(() => { 
  driver.findElement(webdriver.By.id("password"));
});

发生的事情是,每当我试图找到一个不存在的元素时,它就会引发异常。如果元素存在,那么它不会抛出异常。

在我的特定实例中,我使用了以下内容:

assert.doesNotThrow(() => { browser.getText('.alert.alert-danger') });

它似乎运作良好。如果发生变化,我会更新。

答案 2 :(得分:0)

使用以下命令

获取元素
var element = document.getElementById("password");

现在通过断言来检查你是否得到它或坚果,

assert.notEqual(element , null);