检查元素是否存在-Selenium / JavaScript / Node-js

我试图在执行此行之前检查元素是否存在:

driver.findElement(webdriver.By.id('test'));

如果id test在文档中不存在,甚至在try-block中,都会引发错误“ no such element”

。我找到了Java的答案,您可以在其中检查大小是否为0,但是在node-js中,这会在我检查大小之前引发错误。

throw error; ^ NoSuchElementError: no such element

回答:

您可以利用的可选错误处理程序参数then()

driver.findElement(webdriver.By.id('test')).then(function(webElement) {

console.log('Element exists');

}, function(err) {

if (err.state && err.state === 'no such element') {

console.log('Element not found');

} else {

webdriver.promise.rejected(err);

}

});

我在文档中找不到明确声明的内容,但是webdriver/promise.js通过selenium-

webdriver模块源代码中的函数定义确定了这一点:

  /**

* Registers a callback on this Deferred.

* @param {Function=} opt_callback The callback.

* @param {Function=} opt_errback The errback.

* @return {!webdriver.promise.Promise} A new promise representing the result

* of the callback.

* @see webdriver.promise.Promise#then

*/

function then(opt_callback, opt_errback) {

以上是 检查元素是否存在-Selenium / JavaScript / Node-js 的全部内容, 来源链接: utcz.com/qa/420650.html

回到顶部