Skip to content

Commit 1ed90bc

Browse files
committed
Add methods for controlling Local Storage and Session Storage
1 parent 2d6d62b commit 1ed90bc

File tree

2 files changed

+103
-13
lines changed

2 files changed

+103
-13
lines changed

help_docs/method_summary.md

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,33 @@ self.set_time_limit(time_limit)
304304

305305
self.skip(reason="")
306306

307-
########
307+
############
308+
309+
self.set_local_storage_item(key, value)
310+
311+
self.get_local_storage_item(key)
312+
313+
self.remove_local_storage_item(key)
314+
315+
self.clear_local_storage()
316+
317+
self.get_local_storage_keys()
318+
319+
self.get_local_storage_items()
320+
321+
self.set_session_storage_item(key, value)
322+
323+
self.get_session_storage_item(key)
324+
325+
self.remove_session_storage_item(key)
326+
327+
self.clear_session_storage()
328+
329+
self.get_session_storage_keys()
330+
331+
self.get_session_storage_items()
332+
333+
############
308334

309335
self.add_css_link(css_link)
310336

@@ -318,7 +344,7 @@ self.add_js_code(js_code)
318344

319345
self.add_meta_tag(http_equiv=None, content=None)
320346

321-
########
347+
############
322348

323349
self.create_tour(name=None, theme=None)
324350

@@ -350,7 +376,7 @@ self.post_error_message(message, duration=None, pause=True)
350376
self.set_messenger_theme(theme="default", location="default",
351377
max_messages="default")
352378

353-
########
379+
############
354380

355381
self.generate_referral(start_page, destination_page)
356382

@@ -360,7 +386,7 @@ self.generate_referral_chain(pages)
360386

361387
self.generate_traffic_chain(pages, loops=1)
362388

363-
########
389+
############
364390

365391
self.get_element(selector, by=By.CSS_SELECTOR, timeout=None)
366392
# 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)
374400
self.assert_element(selector, by=By.CSS_SELECTOR, timeout=None)
375401
# Duplicates: self.assert_element_visible(selector, by=By.CSS_SELECTOR, timeout=None)
376402

377-
########
403+
############
378404

379405
self.find_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
380406
# 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)
387413

388414
self.assert_exact_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
389415

390-
########
416+
############
391417

392418
self.wait_for_link_text_present(link_text, timeout=None)
393419

@@ -399,44 +425,44 @@ self.find_link_text(link_text, timeout=None)
399425

400426
self.assert_link_text(link_text, timeout=None)
401427

402-
########
428+
############
403429

404430
self.find_partial_link_text(partial_link_text, timeout=None)
405431
# Duplicates: self.wait_for_partial_link_text(partial_link_text, timeout=None)
406432

407433
self.assert_partial_link_text(partial_link_text, timeout=None)
408434

409-
########
435+
############
410436

411437
self.wait_for_element_absent(selector, by=By.CSS_SELECTOR, timeout=None)
412438

413439
self.assert_element_absent(selector, by=By.CSS_SELECTOR, timeout=None)
414440

415-
########
441+
############
416442

417443
self.wait_for_element_not_visible(selector, by=By.CSS_SELECTOR, timeout=None)
418444

419445
self.assert_element_not_visible(selector, by=By.CSS_SELECTOR, timeout=None)
420446

421-
########
447+
############
422448

423449
self.wait_for_text_not_visible(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
424450

425451
self.assert_text_not_visible(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
426452

427-
########
453+
############
428454

429455
self.wait_for_and_accept_alert(timeout=None)
430456

431457
self.wait_for_and_dismiss_alert(timeout=None)
432458

433459
self.wait_for_and_switch_to_alert(timeout=None)
434460

435-
########
461+
############
436462

437463
self.check_window(name="default", level=0, baseline=False)
438464

439-
########
465+
############
440466

441467
self.delayed_assert_element(selector, by=By.CSS_SELECTOR, timeout=None)
442468

seleniumbase/fixtures/base_case.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2806,6 +2806,70 @@ def skip(self, reason=""):
28062806

28072807
############
28082808

2809+
# Application "Local Storage" controls
2810+
2811+
def set_local_storage_item(self, key, value):
2812+
self.execute_script(
2813+
"window.localStorage.setItem('{}', '{}');".format(key, value))
2814+
2815+
def get_local_storage_item(self, key):
2816+
return self.execute_script(
2817+
"return window.localStorage.getItem('{}');".format(key))
2818+
2819+
def remove_local_storage_item(self, key):
2820+
self.execute_script(
2821+
"window.localStorage.removeItem('{}');".format(key))
2822+
2823+
def clear_local_storage(self):
2824+
self.execute_script("window.localStorage.clear();")
2825+
2826+
def get_local_storage_keys(self):
2827+
return self.execute_script(
2828+
"var ls = window.localStorage, keys = []; "
2829+
"for (var i = 0; i < ls.length; ++i) "
2830+
" keys[i] = ls.key(i); "
2831+
"return keys;")
2832+
2833+
def get_local_storage_items(self):
2834+
return self.execute_script(
2835+
r"var ls = window.localStorage, items = {}; "
2836+
"for (var i = 0, k; i < ls.length; ++i) "
2837+
" items[k = ls.key(i)] = ls.getItem(k); "
2838+
"return items;")
2839+
2840+
# Application "Session Storage" controls
2841+
2842+
def set_session_storage_item(self, key, value):
2843+
self.execute_script(
2844+
"window.sessionStorage.setItem('{}', '{}');".format(key, value))
2845+
2846+
def get_session_storage_item(self, key):
2847+
return self.execute_script(
2848+
"return window.sessionStorage.getItem('{}');".format(key))
2849+
2850+
def remove_session_storage_item(self, key):
2851+
self.execute_script(
2852+
"window.sessionStorage.removeItem('{}');".format(key))
2853+
2854+
def clear_session_storage(self):
2855+
self.execute_script("window.sessionStorage.clear();")
2856+
2857+
def get_session_storage_keys(self):
2858+
return self.execute_script(
2859+
"var ls = window.sessionStorage, keys = []; "
2860+
"for (var i = 0; i < ls.length; ++i) "
2861+
" keys[i] = ls.key(i); "
2862+
"return keys;")
2863+
2864+
def get_session_storage_items(self):
2865+
return self.execute_script(
2866+
r"var ls = window.sessionStorage, items = {}; "
2867+
"for (var i = 0, k; i < ls.length; ++i) "
2868+
" items[k = ls.key(i)] = ls.getItem(k); "
2869+
"return items;")
2870+
2871+
############
2872+
28092873
# Duplicates (Avoids name confusion when migrating from other frameworks.)
28102874

28112875
def open_url(self, url):

0 commit comments

Comments
 (0)