Add methods for controlling Local Storage and Session Storage

This commit is contained in:
Michael Mintz 2020-05-09 14:35:48 -04:00
parent 2d6d62b847
commit 1ed90bcae8
2 changed files with 103 additions and 13 deletions

View File

@ -304,7 +304,33 @@ self.set_time_limit(time_limit)
self.skip(reason="") self.skip(reason="")
######## ############
self.set_local_storage_item(key, value)
self.get_local_storage_item(key)
self.remove_local_storage_item(key)
self.clear_local_storage()
self.get_local_storage_keys()
self.get_local_storage_items()
self.set_session_storage_item(key, value)
self.get_session_storage_item(key)
self.remove_session_storage_item(key)
self.clear_session_storage()
self.get_session_storage_keys()
self.get_session_storage_items()
############
self.add_css_link(css_link) self.add_css_link(css_link)
@ -318,7 +344,7 @@ self.add_js_code(js_code)
self.add_meta_tag(http_equiv=None, content=None) self.add_meta_tag(http_equiv=None, content=None)
######## ############
self.create_tour(name=None, theme=None) self.create_tour(name=None, theme=None)
@ -350,7 +376,7 @@ self.post_error_message(message, duration=None, pause=True)
self.set_messenger_theme(theme="default", location="default", self.set_messenger_theme(theme="default", location="default",
max_messages="default") max_messages="default")
######## ############
self.generate_referral(start_page, destination_page) self.generate_referral(start_page, destination_page)
@ -360,7 +386,7 @@ self.generate_referral_chain(pages)
self.generate_traffic_chain(pages, loops=1) self.generate_traffic_chain(pages, loops=1)
######## ############
self.get_element(selector, by=By.CSS_SELECTOR, timeout=None) self.get_element(selector, by=By.CSS_SELECTOR, timeout=None)
# Duplicates: self.wait_for_element_present(selector, by=By.CSS_SELECTOR, timeout=None) # Duplicates: self.wait_for_element_present(selector, by=By.CSS_SELECTOR, timeout=None)
@ -374,7 +400,7 @@ self.assert_element_present(selector, by=By.CSS_SELECTOR, timeout=None)
self.assert_element(selector, by=By.CSS_SELECTOR, timeout=None) self.assert_element(selector, by=By.CSS_SELECTOR, timeout=None)
# Duplicates: self.assert_element_visible(selector, by=By.CSS_SELECTOR, timeout=None) # Duplicates: self.assert_element_visible(selector, by=By.CSS_SELECTOR, timeout=None)
######## ############
self.find_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None) self.find_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
# Duplicates: self.wait_for_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None) # Duplicates: self.wait_for_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
@ -387,7 +413,7 @@ self.assert_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
self.assert_exact_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None) self.assert_exact_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
######## ############
self.wait_for_link_text_present(link_text, timeout=None) self.wait_for_link_text_present(link_text, timeout=None)
@ -399,32 +425,32 @@ self.find_link_text(link_text, timeout=None)
self.assert_link_text(link_text, timeout=None) self.assert_link_text(link_text, timeout=None)
######## ############
self.find_partial_link_text(partial_link_text, timeout=None) self.find_partial_link_text(partial_link_text, timeout=None)
# Duplicates: self.wait_for_partial_link_text(partial_link_text, timeout=None) # Duplicates: self.wait_for_partial_link_text(partial_link_text, timeout=None)
self.assert_partial_link_text(partial_link_text, timeout=None) self.assert_partial_link_text(partial_link_text, timeout=None)
######## ############
self.wait_for_element_absent(selector, by=By.CSS_SELECTOR, timeout=None) self.wait_for_element_absent(selector, by=By.CSS_SELECTOR, timeout=None)
self.assert_element_absent(selector, by=By.CSS_SELECTOR, timeout=None) self.assert_element_absent(selector, by=By.CSS_SELECTOR, timeout=None)
######## ############
self.wait_for_element_not_visible(selector, by=By.CSS_SELECTOR, timeout=None) self.wait_for_element_not_visible(selector, by=By.CSS_SELECTOR, timeout=None)
self.assert_element_not_visible(selector, by=By.CSS_SELECTOR, timeout=None) self.assert_element_not_visible(selector, by=By.CSS_SELECTOR, timeout=None)
######## ############
self.wait_for_text_not_visible(text, selector="html", by=By.CSS_SELECTOR, timeout=None) self.wait_for_text_not_visible(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
self.assert_text_not_visible(text, selector="html", by=By.CSS_SELECTOR, timeout=None) self.assert_text_not_visible(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
######## ############
self.wait_for_and_accept_alert(timeout=None) self.wait_for_and_accept_alert(timeout=None)
@ -432,11 +458,11 @@ self.wait_for_and_dismiss_alert(timeout=None)
self.wait_for_and_switch_to_alert(timeout=None) self.wait_for_and_switch_to_alert(timeout=None)
######## ############
self.check_window(name="default", level=0, baseline=False) self.check_window(name="default", level=0, baseline=False)
######## ############
self.delayed_assert_element(selector, by=By.CSS_SELECTOR, timeout=None) self.delayed_assert_element(selector, by=By.CSS_SELECTOR, timeout=None)

View File

@ -2806,6 +2806,70 @@ class BaseCase(unittest.TestCase):
############ ############
# Application "Local Storage" controls
def set_local_storage_item(self, key, value):
self.execute_script(
"window.localStorage.setItem('{}', '{}');".format(key, value))
def get_local_storage_item(self, key):
return self.execute_script(
"return window.localStorage.getItem('{}');".format(key))
def remove_local_storage_item(self, key):
self.execute_script(
"window.localStorage.removeItem('{}');".format(key))
def clear_local_storage(self):
self.execute_script("window.localStorage.clear();")
def get_local_storage_keys(self):
return self.execute_script(
"var ls = window.localStorage, keys = []; "
"for (var i = 0; i < ls.length; ++i) "
" keys[i] = ls.key(i); "
"return keys;")
def get_local_storage_items(self):
return self.execute_script(
r"var ls = window.localStorage, items = {}; "
"for (var i = 0, k; i < ls.length; ++i) "
" items[k = ls.key(i)] = ls.getItem(k); "
"return items;")
# Application "Session Storage" controls
def set_session_storage_item(self, key, value):
self.execute_script(
"window.sessionStorage.setItem('{}', '{}');".format(key, value))
def get_session_storage_item(self, key):
return self.execute_script(
"return window.sessionStorage.getItem('{}');".format(key))
def remove_session_storage_item(self, key):
self.execute_script(
"window.sessionStorage.removeItem('{}');".format(key))
def clear_session_storage(self):
self.execute_script("window.sessionStorage.clear();")
def get_session_storage_keys(self):
return self.execute_script(
"var ls = window.sessionStorage, keys = []; "
"for (var i = 0; i < ls.length; ++i) "
" keys[i] = ls.key(i); "
"return keys;")
def get_session_storage_items(self):
return self.execute_script(
r"var ls = window.sessionStorage, items = {}; "
"for (var i = 0, k; i < ls.length; ++i) "
" items[k = ls.key(i)] = ls.getItem(k); "
"return items;")
############
# Duplicates (Avoids name confusion when migrating from other frameworks.) # Duplicates (Avoids name confusion when migrating from other frameworks.)
def open_url(self, url): def open_url(self, url):