Selenium Webdriver 在 LocalStorage 中添加

gon*_*225 5 local-storage selenium-chromedriver selenium-webdriver

我尝试将以下标志添加到其中LocalStorage,但它不起作用。

localStorage.setItem('ClientRedirectEnabled', 'true');
Run Code Online (Sandbox Code Playgroud)

我的代码如下

public void FlagIntroduce() throws InterruptedException {
    Thread.sleep(20000);
    LocalStorage localStorage = new LocalStorage() {
        @Override
        public String getItem(String s) {
            return null;
        }

        @Override
        public Set<String> keySet() {
            return null;
        }

        @Override
        public void setItem(String s, String s1) {
            setItem("ClientRedirectEnabled", "true");
        }

        @Override
        public String removeItem(String s) {
            return null;
        }

        @Override
        public void clear() {

        }

        @Override
        public int size() {
            return 0;
        }
    };


}
Run Code Online (Sandbox Code Playgroud)

在 chromedriver 中开始测试时,我打开控制台和应用程序书签。在本地存储中,我没有在 setItem 中设置的键和值

Rah*_*l L 8

在此处查看示例LocalStorageTest

  @Test
  public void testLocalStorageSetAndGetItem() {
    ChromeDriver driver = new ChromeDriver();
    driver.get("https://www.testurl");

    LocalStorage local = ((WebStorage) driver).getLocalStorage();    

    local.setItem("FOO", "BAR");

    local.clear();

  }
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以使用 aJavascriptExecutor来为您完成这项工作。

如果您使用 Java 作为语言,以下代码会对您有所帮助

JavascriptExecutor js = (JavascriptExecutor) driver;  
js.executeScript("localStorage.setItem(arguments[0],arguments[1])",key,value));
Run Code Online (Sandbox Code Playgroud)