Selenium Webdriver实例上的JavascriptExecutor在导航到其他页面时引发异常
JavascriptExecutor on Selenium Webdriver instance throwing exception on navigating to other page
我正试图通过在webdriver实例上注入javascript evenslisteners来记录用户操作-点击、按键等其他DOM事件。这很好用!但当我导航到下一页时,由于DOM发生了变化,它为一个未定义的函数提供了一个异常。如何处理此异常?
是否有一种方法可以将所有事件捕获到临时存储中,并在所有网页导航完成后读取。
代码:
((JavascriptExecutor) driver)
.executeScript("(function() {
var events = [];
window.addEventListener('click', function(e) {
events.push([+new Date(), 'click', [e.clientX, e.clientY], e.target.name, e.target.id]);
}, true);
window.addEventListener('keypress', function(e) {
events.push([+new Date(), 'keypress', e.target.name, e.target.id, String.fromCharCode(e.keyCode)]);
}, true);
window._getEvents = function() {
return events;
};
})();
");
response = (ArrayList)((JavascriptExecutor) driver)
.executeScript("return window._getEvents();");
我们可以使用localStorage
localStorage.setItem('key', JSON.stringify(events));
然后检索
return JSON.parse(localStorage.getItem('key'));
相关文章:
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 除修剪外的其他功能
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- Array.length似乎不起作用;console.log则显示其他情况
- 如何消除代码中的未定义和其他问题
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- Jquery未定义函数正在停止其他操作
- 如何将我的javascript库公开给其他客户端使用
- Javascript阻止其他Javascript代码
- chart.series[id].remove()无法刷新高位图表/高位股票中其他系列的图例属性
- Selenium Webdriver实例上的JavascriptExecutor在导航到其他页面时引发异常
- Javascript:观察其他脚本抛出的异常
- 除了使用函数,还有其他方法可以从表达式抛出异常吗?
- jquery:“;异常抛出而未被捕获”;在IE8中,但可在其他浏览器中使用