【问题标题】:JavascriptExecutor on Selenium Webdriver instance throwing exception on navigating to other pageSelenium Webdriver实例上的JavascriptExecutor在导航到其他页面时抛出异常
【发布时间】:2014-11-11 11:03:41
【问题描述】:

我正在尝试通过在 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();");

【问题讨论】:

    标签: java javascript selenium selenium-webdriver webdriver


    【解决方案1】:

    我们可以使用localStorage

    localStorage.setItem('key', JSON.stringify(events)); 
    

    然后检索

    return JSON.parse(localStorage.getItem('key'));
    

    【讨论】:

      猜你喜欢
      • 2016-09-16
      • 2013-02-22
      • 2018-07-14
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      相关资源
      最近更新 更多