如何检查一个元素是否存在selenium nodejs

我想检查页面上是否存在元素(不应该),如果不存在则继续。

driver.wait(function() { fieldBool = driver.isElementPresent(webdriver.By.id("someId")); return fieldBool; }, timeout).then(function(b) { assert.equal(false, b, "message"); }); 

我想fieldBool为false,但testing停止(超时或不存在这样的元素)。

WebDriver会在元素不存在时抛出错误。 所以,我们必须检查NoSuchElementError

我们可以通过使用.findElement promise driver.findElement(...).then(successCallback,errorCallback)的可选callback.findElement来检查元素是否不存在,它将作为参数名称暗示被调用。

以下是我一直在做的事情:

 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"); 

尝试这个,

 driver.isElementPresent(webdriver.By.id("someId")).then( function(isPresent){ assert.equal(false, isPresent , "message"); } ) 

我希望它可以帮助你