Répondre

3

Je résolus à l'aide:

driver.execute_script("window.localStorage;")

EDIT: ceci est une réponse rapide et courte. Voir la réponse de Florent B. pour une réponse plus détaillée.

0

Essayez:

driver.execute_script("window.localStorage.setItem('key','value');"); 
driver.execute_script("window.localStorage.getItem('key');"); 
0

Voir la réponse à la question Getting the return value of Javascript code in Selenium.

Fondamentalement, vous avez besoin de faire quelque chose comme ce qui suit:

from selenium import webdriver 

wd = webdriver.Firefox() 
wd.get("http://localhost/foo/bar") 
wd.execute_script("return localStorage.getItem('foo')") 
6

L'API python ne fournit pas un moyen de lire directement/écrire le stockage local, mais il peut être fait avec execute_script.

import json 

class LocalStorage: 

    def __init__(self, driver): 
    self.driver = driver 

    def set(self, key, value): 
    self.driver.execute_script(\ 
     "window.localStorage.setItem('{}',{})".format(key, json.dumps(value))) 

    def get(self, key=None): 
    if key: 
     return self.driver.execute_script(\ 
     "return window.localStorage.getItem('{}')".format(key)) 
    else: 
     return self.driver.execute_script(""" 
     var items = {}, ls = window.localStorage; 
     for (var i = 0, k; i < ls.length; i++) 
      items[k = ls.key(i)] = ls.getItem(k); 
     return items; 
     """) 

    def remove(self, key): 
    self.driver.execute_script(\ 
     "window.localStorage.removeItem('{}');".format(key)) 

    def clear(self): 
    self.driver.execute_script(\ 
     "window.localStorage.clear();") 

Exemple d'utilisation:

# get the local storage 
storage = LocalStorage(driver) 

# set an item 
storage.set("mykey", 1234) 

# get an item 
print(storage.get("mykey")) 

# remove an item 
storage.remove("mykey") 

# get all items 
for key, value in storage.get().items(): 
    print(key + ': ' + value) 

# delete all items 
storage.clear()