Webdriver 从本地存储中获取项目

Joh*_*ohn 5 java selenium storage local selenium-webdriver

我正在尝试使用 Selenium Webdriver 从本地存储中获取一个项目。

我关注了这个网站,但是当我运行我的代码时,我得到了NullPointerException.

当我调试代码时,我看到了函数:getItemFromLocalStorage 由于某种原因返回 NULL。

这是我的代码:

public class storage
 {
    public static WebDriver driver;
    public static JavascriptExecutor js;

    public static void main(String[] args)
    {       
        System.setProperty("webdriver.chrome.driver", "D://chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("http://html5demos.com/storage");
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.findElement(By.id("local")).sendKeys("myLocal");
        driver.findElement(By.id("session")).sendKeys("mySession");
        driver.findElement(By.tagName("code")).click(); // just to escape textbox

        String sItem = getItemFromLocalStorage("value");
        System.out.println(sItem);
    }

    public static String getItemFromLocalStorage(String key)
    {
        return (String) js.executeScript(String.format(
            "return window.localStorage.getItem('%s');", key));
    }
}
Run Code Online (Sandbox Code Playgroud)

Pri*_*har 3

那是因为您忘记了js正确实例化对象。在 后添加以下行driver = new ChromeDriver();

js = ((JavascriptExecutor)driver);
Run Code Online (Sandbox Code Playgroud)

它会起作用的。