mad*_*dan 3 selenium mocha.js node.js
我想检查页面上是否存在元素(不应该),如果不存在则继续。
driver.wait(function() {
fieldBool = driver.isElementPresent(webdriver.By.id("someId"));
return fieldBool;
}, timeout).then(function(b) {
assert.equal(false, b, "message");
});
Run Code Online (Sandbox Code Playgroud)
我希望 fieldBool 为假,但测试停止(超时或不存在此类元素)。
当元素不存在时,WebDriver 将抛出错误。因此,我们必须检查NoSuchElementError.
我们可以通过使用.findElement承诺的可选回调来检查元素是否不存在,该回调driver.findElement(...).then(successCallback,errorCallback)将作为参数名称暗示被调用。
以下是我一直在做的事情:
var existed = await driver.findElement(webdriver.By.id("someId")).then(function() {
return true;//it was found
}, function(err) {
if (err instanceof webdriver.error.NoSuchElementError) {
return false;//element did not exist
} else {
webdriver.promise.rejected(err);//some other error...
}
});
assert.equal(existed,false,"message");
Run Code Online (Sandbox Code Playgroud)