簡體   English   中英

如何使用 selenium for java 從 chrome 獲取本地存儲數據?

[英]How can I get local storage data from chrome using selenium for java?

我有一個 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);
    });
});


據我所知,這很好地存儲了變量,並顯示了警報。 然后,我嘗試使用

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 插件比較陌生,不確定我做錯了什么。 此外,我曾嘗試使用此 StackOverflow Post 中建議的實用程序類,但沒有成功。 任何幫助將不勝感激。

public static String getItemFromLocalStorage(String key)
{
        JavascriptExecutor js = ((JavascriptExecutor)ios_mob_driver);
        return (String) js.executeScript(String.format("return window.localStorage.getItem('%s');", key));
}

我用過並且對我來說工作得很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM