Chrome扩展程序 - 可以修改窗口对象但无法创建新变量

时间:2018-06-14 17:22:26

标签: javascript selenium selenium-webdriver google-chrome-extension selenium-chromedriver

我正在尝试使用Selenium Webdriver(Javascript版本)和Chrome扩展程序来捕获网络流量并查找特定模式网址的流量。我试图将匹配的流量保存到窗口对象中的新变量,以便以后简化测试。

我可以在答案here之后修改窗口但由于某种原因我无法创建新的全局变量,因此当我打开控制台并键入" window.testing"在页面加载后,它返回undefined。任何解释都将不胜感激。

内容脚本代码段:

window.addEventListener('load', loadEvent => {
    let window = loadEvent.currentTarget;
    //Works as expected
    window.document.title='You changed me!';

    window.testing = {test: '123'};
    testing.customlog = 'You made a custom log!';

    // Console logs as expected
    console.log(testing);

    // Gives error - undefined
    console.log(window.testing);
});

1 个答案:

答案 0 :(得分:2)

由于HTTP是无状态的,因此每次加载页面时,它都将使用您在JavaScript中设置的任何值的初始值。您无法在JS中设置全局变量,只需在再次加载页面后保持该值。

enter link description here