首页 > 解决方案 > 带有 RemoteWebDriver 的 WebStorage

问题描述

我在运行测试时尝试访问 WebStorage,我使用 ChromeDriver 在本地运行测试,并使用 RemoteWebDriver 在管道中远程运行测试。

使用 RemoteWebDriver 时无法访问 WebStorage

WebStorage webStorage = (RemoteWebStorage) new Augmenter().augment(driver);

我正进入(状态:

org.openqa.selenium.remote.RemoteWebDriver 无法转换为 org.openqa.selenium.remote.html5.RemoteWebStorage

欢迎任何建议,谢谢。

标签: javaseleniumselenium-webdriverremotewebdriver

解决方案


您必须使用以下 hack 来访问 RemoteWebDriver 中的本地存储。使用 RemoteWebdriver selenium-java - 4.0.0-alpha-2 、Chrome 版本 76.0.3809.100 和 ChromeDriver 76.0.3809.68 在 chrome 浏览器上对其进行了测试。对我来说工作得很好。

导入以下类

 import org.openqa.selenium.remote.RemoteExecuteMethod;
 import org.openqa.selenium.remote.html5.RemoteWebStorage;
 import org.openqa.selenium.html5.LocalStorage;

使用以下代码访问本地存储

 RemoteExecuteMethod executeMethod = new RemoteExecuteMethod((RemoteWebDriver) driver);
 RemoteWebStorage webStorage = new RemoteWebStorage(executeMethod);
 LocalStorage storage = webStorage.getLocalStorage();
 storage.setItem("test", "test");

推荐阅读