【发布时间】: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