【问题标题】:How can I get local storage data from chrome using selenium for java?如何使用 selenium for java 从 chrome 获取本地存储数据?
【发布时间】:2020-01-20 14:19:45
【问题描述】:

我有一个 chrome 扩展,它使用清单存储本地数据

{
    "name": "Tab Listener",
    "version": "1.0",
    "manifest_version": 2,
    "permissions": ["storage"],
    "background": {
        "scripts": ["content.js"]
    }
}

和一个 content.js 的

chrome.tabs.onActivated.addListener(function(activeInfo) {
    chrome.storage.local.set({currentTabIndex: 'testValue'}, function() {
    });

    chrome.storage.local.get('currentTabIndex', function(result) {
    alert('Value currently is ' + result.currentTabIndex);
    });
});


据我所知,这会很好地存储变量,并显示警报。然后,我尝试在 java 应用程序中使用

WebStorage webStorage = (WebStorage) new Augmenter().augment(driver);
LocalStorage localStorage = webStorage.getLocalStorage();
SessionStorage sessionStorage = webStorage.getSessionStorage();
System.out.println(localStorage.getItem("currentTabIndex"));
System.out.println(sessionStorage.getItem("currentTabIndex"));

两种情况都返回 null。我确实使用 chrome 设置启动了我的驱动程序

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=C:\\AutoSig\\personal\\chrome");
driver = new ChromeDriver(options);

并确认这确实存储了 chrome 的数据并将会话传递到会话。我对 chrome 插件比较陌生,不知道我做错了什么。另外,我尝试使用This StackOverflow Post 中建议的实用程序类,但没有运气。任何帮助将不胜感激。

【问题讨论】:

  • 确保将驱动程序切换到选项卡...“onActivated 当窗口中的活动选项卡更改时触发”
  • 我不太明白你的意思。
  • content.js 在选项卡被激活时设置并获取本地存储。 Selenium 有一个切换标签的命令:driver.switchTo()
  • 对,我的总体目标是让 Selenium 在浏览器中更改后知道活动选项卡是。我的想法是构建一个可以存储数据的扩展,然后将其加载到我的 Java 应用程序中。
  • 这只有在你试图确定一个人的活动标签时才有用。 (此脚本仅在人类单击选项卡时触发。)Selenium 始终知道自己的活动选项卡。

标签: javascript java selenium google-chrome local-storage


【解决方案1】:
public static String getItemFromLocalStorage(String key)
{
        JavascriptExecutor js = ((JavascriptExecutor)ios_mob_driver);
        return (String) js.executeScript(String.format("return window.localStorage.getItem('%s');", key));
}

我使用过并且工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 2022-07-21
    相关资源
    最近更新 更多