Skip to content

Commit e1b2e47

Browse files
committed
Improve error-handling for Local/Session Storage methods
1 parent 77c4b5a commit e1b2e47

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

seleniumbase/fixtures/base_case.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6912,26 +6912,41 @@ def __assert_shadow_element_visible(self, selector):
69126912

69136913
# Application "Local Storage" controls
69146914

6915+
def __is_valid_storage_url(self):
6916+
url = self.get_current_url()
6917+
if url and len(url) > 0:
6918+
if ("http:") in url or ("https:") in url or ("file:") in url:
6919+
return True
6920+
return False
6921+
69156922
def set_local_storage_item(self, key, value):
69166923
self.__check_scope()
6924+
if not self.__is_valid_storage_url():
6925+
raise WebDriverException("Local Storage is not available here!")
69176926
self.execute_script(
69186927
"window.localStorage.setItem('{}', '{}');".format(key, value)
69196928
)
69206929

69216930
def get_local_storage_item(self, key):
69226931
self.__check_scope()
6932+
if not self.__is_valid_storage_url():
6933+
raise WebDriverException("Local Storage is not available here!")
69236934
return self.execute_script(
69246935
"return window.localStorage.getItem('{}');".format(key)
69256936
)
69266937

69276938
def remove_local_storage_item(self, key):
69286939
self.__check_scope()
6940+
if not self.__is_valid_storage_url():
6941+
raise WebDriverException("Local Storage is not available here!")
69296942
self.execute_script(
69306943
"window.localStorage.removeItem('{}');".format(key)
69316944
)
69326945

69336946
def clear_local_storage(self):
69346947
self.__check_scope()
6948+
if not self.__is_valid_storage_url():
6949+
return
69356950
self.execute_script("window.localStorage.clear();")
69366951
if self.recorder_mode:
69376952
time_stamp = self.execute_script("return Date.now();")
@@ -6941,6 +6956,8 @@ def clear_local_storage(self):
69416956

69426957
def get_local_storage_keys(self):
69436958
self.__check_scope()
6959+
if not self.__is_valid_storage_url():
6960+
raise WebDriverException("Local Storage is not available here!")
69446961
return self.execute_script(
69456962
"var ls = window.localStorage, keys = []; "
69466963
"for (var i = 0; i < ls.length; ++i) "
@@ -6950,6 +6967,8 @@ def get_local_storage_keys(self):
69506967

69516968
def get_local_storage_items(self):
69526969
self.__check_scope()
6970+
if not self.__is_valid_storage_url():
6971+
raise WebDriverException("Local Storage is not available here!")
69536972
return self.execute_script(
69546973
r"var ls = window.localStorage, items = {}; "
69556974
"for (var i = 0, k; i < ls.length; ++i) "
@@ -6961,24 +6980,32 @@ def get_local_storage_items(self):
69616980

69626981
def set_session_storage_item(self, key, value):
69636982
self.__check_scope()
6983+
if not self.__is_valid_storage_url():
6984+
raise WebDriverException("Session Storage is not available here!")
69646985
self.execute_script(
69656986
"window.sessionStorage.setItem('{}', '{}');".format(key, value)
69666987
)
69676988

69686989
def get_session_storage_item(self, key):
69696990
self.__check_scope()
6991+
if not self.__is_valid_storage_url():
6992+
raise WebDriverException("Session Storage is not available here!")
69706993
return self.execute_script(
69716994
"return window.sessionStorage.getItem('{}');".format(key)
69726995
)
69736996

69746997
def remove_session_storage_item(self, key):
69756998
self.__check_scope()
6999+
if not self.__is_valid_storage_url():
7000+
raise WebDriverException("Session Storage is not available here!")
69767001
self.execute_script(
69777002
"window.sessionStorage.removeItem('{}');".format(key)
69787003
)
69797004

69807005
def clear_session_storage(self):
69817006
self.__check_scope()
7007+
if not self.__is_valid_storage_url():
7008+
return
69827009
if not self.recorder_mode:
69837010
self.execute_script("window.sessionStorage.clear();")
69847011
else:
@@ -7000,6 +7027,8 @@ def clear_session_storage(self):
70007027

70017028
def get_session_storage_keys(self):
70027029
self.__check_scope()
7030+
if not self.__is_valid_storage_url():
7031+
raise WebDriverException("Session Storage is not available here!")
70037032
return self.execute_script(
70047033
"var ls = window.sessionStorage, keys = []; "
70057034
"for (var i = 0; i < ls.length; ++i) "
@@ -7009,6 +7038,8 @@ def get_session_storage_keys(self):
70097038

70107039
def get_session_storage_items(self):
70117040
self.__check_scope()
7041+
if not self.__is_valid_storage_url():
7042+
raise WebDriverException("Session Storage is not available here!")
70127043
return self.execute_script(
70137044
r"var ls = window.sessionStorage, items = {}; "
70147045
"for (var i = 0, k; i < ls.length; ++i) "

0 commit comments

Comments
 (0)