我正在尝试通过在webdriver实例上注入javascript evenlisteners来记录用户操作 - click,keypress等其他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();");
答案 0 :(得分:0)
我们可以使用localStorage
localStorage.setItem('key', JSON.stringify(events));
然后检索
return JSON.parse(localStorage.getItem('key'));