带有 RemoteWebDriver 的 WebStorage

WebStorage with RemoteWebDriver

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

我在使用 RemoteWebDriver 时无法访问 WebStorage

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

我得到:

org.openqa.selenium.remote.RemoteWebDriver cannot be cast to org.openqa.selenium.remote.html5.RemoteWebStorage

欢迎提出建议,谢谢。

您将必须使用以下 hack 来访问 RemoteWebDriver 中的本地存储。使用 RemoteWebdriver selenium-java - 4.0.0-alpha-2 、Chrome Version 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");

您忘记了一次导入 import org.openqa.selenium.remote.RemoteWebDriver;