答えて

3

私が使用して解決:

driver.execute_script("window.localStorage;")

EDIT:これは、迅速かつ短い答えです。より詳細なものについてはFlorent B.の答えを見てください。

0

試してみてください。

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

質問Getting the return value of Javascript code in Seleniumの回答を参照してください。

基本的には、次のような何かをする必要があります。

from selenium import webdriver 

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

PythonのAPIは、直接ローカルストレージを読み出し/書き込みする方法はありませんが、それは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();") 

使用例:

# 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() 
関連する問題