下面列出了怎么用org.openqa.selenium.html5.SessionStorage的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* 保存sessionStorage信息
* @param account
*/
private void saveSessionStorage(String account)
{
WebDriver driver = util.getEngine().getDriver();
if(driver instanceof WebStorage)
{
WebStorage webStorage = (WebStorage) driver;
SessionStorage sessionStorage = webStorage.getSessionStorage();
Properties pro = new Properties();
for(String key : sessionStorage.keySet())
{
pro.setProperty(key, sessionStorage.getItem(key));
}
PathUtil.proStore(pro, "sessionStorage." + account);
}
}
@Test
public void providesRemoteAccessToWebStorage() {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(CapabilityType.SUPPORTS_WEB_STORAGE, true);
CapableDriver driver = mock(CapableDriver.class);
when(driver.getCapabilities()).thenReturn(caps);
WebStorage storage = Utils.getWebStorage(driver);
LocalStorage localStorage = storage.getLocalStorage();
SessionStorage sessionStorage = storage.getSessionStorage();
localStorage.setItem("foo", "bar");
sessionStorage.setItem("bim", "baz");
verify(driver).execute(DriverCommand.SET_LOCAL_STORAGE_ITEM, ImmutableMap.of(
"key", "foo", "value", "bar"));
verify(driver).execute(DriverCommand.SET_SESSION_STORAGE_ITEM, ImmutableMap.of(
"key", "bim", "value", "baz"));
}
/**
* 加载sessionStorage信息
* @param accountNameValue
* @return
*/
private boolean loadSessionStorage(String accountNameValue, Map<String, String> customMap)
{
WebDriver webDriver = util.getEngine().getDriver();
if(webDriver instanceof WebStorage)
{
WebStorage webStorage = (WebStorage) webDriver;
SessionStorage sessionStorage = webStorage.getSessionStorage();
Properties pro = new Properties();
if(PathUtil.proLoad(pro, "sessionStorage." + accountNameValue))
{
if(pro.isEmpty())
{
return false;
}
pro.putAll(customMap);
pro.stringPropertyNames().parallelStream().forEach((key) -> {
sessionStorage.setItem(key, pro.getProperty(key));
});
return true;
}
}
return false;
}
@Override
public SessionStorage getSessionStorage() {
return ((WebStorage)getDriver()).getSessionStorage();
}
@Override
public SessionStorage getSessionStorage() {
return webStorage.getSessionStorage();
}
@Override
public SessionStorage getSessionStorage() {
return webStorage.getSessionStorage();
}
@Override
public SessionStorage getSessionStorage() {
return webStorage.getSessionStorage();
}
@Override
public SessionStorage getSessionStorage() {
return new RemoteSessionStorage(executeMethod);
}
@Override
public SessionStorage getSessionStorage() {
return webStorage.getSessionStorage();
}
@Override
public SessionStorage getSessionStorage() {
return webStorage.getSessionStorage();
}