2014-12-19 177 views
1

我在编写基于Java的selenium-webdriver测试。我正在测试的应用程序在storageSession中设置了某些值,例如sessionStorage.setItem("demo", "test"),我怎么能在我的测试中检查并断言存储的变量demo的价值使用Selenium Webdriver测试sessionStorage

+0

那是存储在cookie?如果是的话,那么你可以得到该cookie,然后从cookie中,你可以得到该变量 – 2014-12-19 11:55:54

+0

谢谢,但它不在cookie内,而是存储在浏览器的sessionStorage – learnAndImprove 2014-12-19 11:59:14

回答

3

发现了一个伟大的工具类https://gist.github.com/roydekleijn/5073579

import org.openqa.selenium.JavascriptExecutor; 
import org.openqa.selenium.WebDriver; 

public class LocalStorage { 
    private JavascriptExecutor js; 

    public LocalStorage(WebDriver webDriver) { 
    this.js = (JavascriptExecutor) webDriver; 
    } 

    public void removeItemFromLocalStorage(String item) { 
    js.executeScript(String.format(
     "window.localStorage.removeItem('%s');", item)); 
    } 

    public boolean isItemPresentInLocalStorage(String item) { 
    return !(js.executeScript(String.format(
     "return window.localStorage.getItem('%s');", item)) == null); 
    } 

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

    public String getKeyFromLocalStorage(int key) { 
    return (String) js.executeScript(String.format(
     "return window.localStorage.key('%s');", key)); 
    } 

    public Long getLocalStorageLength() { 
    return (Long) js.executeScript("return window.localStorage.length;"); 
    } 

    public void setItemInLocalStorage(String item, String value) { 
    js.executeScript(String.format(
     "window.localStorage.setItem('%s','%s');", item, value)); 
    } 

    public void clearLocalStorage() { 
    js.executeScript(String.format("window.localStorage.clear();")); 
    } 
} 

感谢罗伊

+0

Python请。我期待访问会话存储并返回一些文件。帮帮我! – 2016-06-03 19:43:08

相关问题