按照文档中的说明尝试注册错误处理程序时,出现错误:
注册一个事件监听器,以便在有时通知 未处理的错误。
webdriver.promise.Application。 的getInstance()。 on('uncaughtException',function(e){ console.error('有一个未被捕获的例外:'+ e.message); });
TypeError: Cannot call method 'getInstance' of undefined
注册错误处理程序的正确方法是什么?
答案 0 :(得分:1)
在搜索WebDriverJS源代码时,我发现了这个:
webdriver.promise.Application = {};
webdriver.promise.Application.getInstance = function() {
webdriver.promise.logDeprecation_(
'webdriver.promise.Application#getInstance()',
'webdriver.promise.controlFlow()');
return webdriver.promise.controlFlow();
};
显然,正确的方法是使用:
webdriver.promise.controlFlow().on('uncaughtException', function(e) {
console.error('There was an unhandled exception! ' + e);
});
我已经对此进行了测试,但确实有效。
(显然我使用的selenium-webdriver的版本没有包含此弃用警告,而只是失败了。)
更新
webdriver.promise.logDeprecation_ = function(oldSig, newSig) {
if (window.console) {
window.console.log(
'Using deprecated ' + oldSig + ', use ' + newSig +
'instead. This will stop working in Selenium 2.31');
} };
我正在使用Selenium 2.32。
答案 1 :(得分:0)
和now已弃用controlFlow
,我如何捕获异常?