我正在尝试检测控制台中是否为第三方API记录了某个警告,该警告发生在可变的时间点。我想做的是反复读取浏览器日志,直到找到我要查找的日志为了简洁起见,这只是一个类似的情况,但更容易阅读:
browser.manage().logs().get('browser').then(function(logs){
console.log('initial logged statements: ', logs.length);
// yields some console messages which are expected
});
browser.sleep(1000).then(function(){
browser.manage().logs().get('browser').then(function(logs){
console.log('reading browserlog after 1 second', logs.length);
// yields no console messages
});
});
尽管我已经在500ms后对渲染页面中的console.error('test')
进行了硬编码,但对browser.manager().logs().get('browser')
的第二次调用根本不会产生任何结果。有人知道为什么这不起作用吗?
Protractor文档说,每次调用后,缓冲区都会被清除,新的调用只会呈现自上次调用以来的新控制台日志(这正是我所需要的)。
此问题已被确认为Selenium中的一个错误。所以幸运的是,这不是我的代码,其他人也可以复制它。