检查元素是否存在-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