Selenium webdriver Selenium Webdriver加载项本地存储

Selenium webdriver Selenium Webdriver加载项本地存储,selenium-webdriver,local-storage,selenium-chromedriver,Selenium Webdriver,Local Storage,Selenium Chromedriver,我尝试将下面的标志添加到LocalStorage中,但它不起作用 localStorage.setItem('ClientRedirectEnabled', 'true'); 下面是我的代码 public void FlagIntroduce() throws InterruptedException { Thread.sleep(20000); LocalStorage localStorage = new LocalStorage() { @Override

我尝试将下面的标志添加到
LocalStorage
中,但它不起作用

localStorage.setItem('ClientRedirectEnabled', 'true');
下面是我的代码

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;
        }
    };


}
public void flagIntroduction()引发InterruptedException{
睡眠(20000);
LocalStorage LocalStorage=新的LocalStorage(){
@凌驾
公共字符串getItem(字符串s){
返回null;
}
@凌驾
公共集密钥集(){
返回null;
}
@凌驾
公共void集合项(字符串s、字符串s1){
setItem(“ClientDirectEnabled”、“true”);
}
@凌驾
公共字符串删除项(字符串s){
返回null;
}
@凌驾
公共空间清除(){
}
@凌驾
公共整数大小(){
返回0;
}
};
}

当测试在chromedriver中启动时,我打开控制台和应用程序书签。在本地存储中,我没有在setItem中设置的键和值,您可以使用
JavascriptExecutor
来完成这项工作

如果您使用Java作为您的语言,下面的代码将对您有所帮助

JavascriptExecutor js = (JavascriptExecutor) driver;  
js.executeScript("localStorage.setItem(arguments[0],arguments[1])",key,value));
在这里检查示例


我用JavascriptExecutor输入这段代码,同样<代码>字符串键=“ClientDirectEnabled”;String value=“true”;JavascriptExecutor js=(JavascriptExecutor)驱动程序;js.executeScript(“localStorage.setItem(ClientDirectEnabled,true)”,键,值)setItem中,让输入参数为
参数[0],参数[1]
不改变我在下面的代码
@覆盖公共无效setItem(字符串键,字符串值){setItem(“ClientDirectEnabled”,“true”);JavascriptExecutor js=(JavascriptExecutor)getDriver;js.executeScript(“localStorage.setItem(arguments[0],arguments[1])”,key,value);}
同样,您不需要创建
localStorage
的实例,只需编写一个函数而不重写任何内容。例如,
public void setLocalStorage(string key,string value){//impl}
我删除了覆盖,目前我有以下代码
public void setLocalStorage(string key,string value){JavascriptExecutor js=(JavascriptExecutor)driver;js.executeScript(“LocalStorage.setItem(参数[0],参数[1]),key,value)}
但仍然不起作用
  @Test
  public void testLocalStorageSetAndGetItem() {
    ChromeDriver driver = new ChromeDriver();
    driver.get("https://www.testurl");

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

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

    local.clear();

  }