【问题标题】:How to set localstorage in selenium + node js?如何在 selenium + node js 中设置本地存储?
【发布时间】:2020-07-20 07:19:34
【问题描述】:

我正在尝试使用 nodeJs + selenium 设置本地存储。实际上我用下面的代码尝试了 Java + Selenium,它对我来说效果很好。

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("localStorage.setItem(arguments[0],arguments[1])", "Id", "{\"_expired\":0,\"_value\":\"133\"}")

但是,使用nodeJs无法实现同样的事情,已经尝试了一些方法,比如-

localStorage.setItem('Id', '{\"_expired\":0,\"_value\":\"133\"}');

但不是放入浏览器本地存储,而是写入一些本地文件。

LocalStorage

我想在Application >> Local Storage >>{site url}中设置key和value

【问题讨论】:

    标签: javascript node.js selenium selenium-webdriver


    【解决方案1】:

    请尝试以下 sn-p。希望它会工作!

    driver.executeScript(function () {
        localStorage.setItem("Id", '{\"_expired\":0,\"_value\":\"133\"}');
    });
    

    【讨论】:

      【解决方案2】:

      您无法从节点 JS 访问浏览器的localstorage

      不过,您可以使用此软件包 Store 来完成您的工作,

      const store = require('store');
      store.set('myObj', { name:'foo' })
       
      // Get myObj
      store.get('myObj')
      

      【讨论】:

      • 谢谢@ABGR。实际上,如果可能的话,我是节点 js 的新手,您能否详细说明您的答案: - 我使用“npm install store”安装了 store.js,然后将代码 const store = require('store'); store.set('myObj', { name:'foo' }) 。然后我运行脚本并打开,该特定会话的开发人员工具检查应用程序>>本地存储>>{siteurl},但没有任何更新。
      • 是的,你不会在 broswer 的本地存储中得到它。它们仅适用于客户端 JS。您可以在服务器端 node-js 代码中获取 store.get('myObj')
      【解决方案3】:

      你也可以这样用:

      driver.executeScript(
              "localStorage.setItem(arguments[0], arguments[1])", key, value
          );
      

      【讨论】:

      • 你能补充一些关于这是做什么的上下文吗?
      • 此代码设置您的本地存储。示例:` function setLocalStorage(driver, key, value) { return driver.executeScript( "localStorage.setItem(arguments[0], arguments[1])", key, value ); } `
      猜你喜欢
      • 1970-01-01
      • 2021-06-28
      • 2021-05-09
      • 2019-10-19
      • 1970-01-01
      • 2020-08-10
      • 2018-11-30
      • 1970-01-01
      • 2012-07-24
      相关资源
      最近更新 更多