@@ -955,6 +955,20 @@ def set_value(self, selector, text, timeout=None):
955955 self .__slow_mode_pause_if_set ()
956956 self .loop .run_until_complete (self .page .sleep (0.025 ))
957957
958+ def submit (self , selector ):
959+ submit_script = (
960+ """elm = document.querySelector('%s');
961+ const event = new KeyboardEvent("keydown", {
962+ key: "Enter",
963+ keyCode: 13,
964+ code: "Enter",
965+ which: 13,
966+ bubbles: true
967+ });
968+ elm.dispatchEvent(event);""" % selector
969+ )
970+ self .loop .run_until_complete (self .page .evaluate (submit_script ))
971+
958972 def evaluate (self , expression ):
959973 """Run a JavaScript expression and return the result."""
960974 expression = expression .strip ()
@@ -1115,6 +1129,16 @@ def get_locale_code(self):
11151129 self .page .evaluate ("navigator.language || navigator.languages[0]" )
11161130 )
11171131
1132+ def get_local_storage_item (self , key ):
1133+ js_code = """localStorage.getItem('%s');""" % key
1134+ with suppress (Exception ):
1135+ return self .loop .run_until_complete (self .page .evaluate (js_code ))
1136+
1137+ def get_session_storage_item (self , key ):
1138+ js_code = """sessionStorage.getItem('%s');""" % key
1139+ with suppress (Exception ):
1140+ return self .loop .run_until_complete (self .page .evaluate (js_code ))
1141+
11181142 def get_screen_rect (self ):
11191143 coordinates = self .loop .run_until_complete (
11201144 self .page .js_dumps ("window.screen" )
@@ -1302,6 +1326,16 @@ def set_locale(self, locale):
13021326 """(Settings will take effect on the next page load)"""
13031327 self .loop .run_until_complete (self .page .set_locale (locale ))
13041328
1329+ def set_local_storage_item (self , key , value ):
1330+ js_code = """localStorage.setItem('%s','%s');""" % (key , value )
1331+ with suppress (Exception ):
1332+ self .loop .run_until_complete (self .page .evaluate (js_code ))
1333+
1334+ def set_session_storage_item (self , key , value ):
1335+ js_code = """sessionStorage.setItem('%s','%s');""" % (key , value )
1336+ with suppress (Exception ):
1337+ self .loop .run_until_complete (self .page .evaluate (js_code ))
1338+
13051339 def set_attributes (self , selector , attribute , value ):
13061340 """This method uses JavaScript to set/update a common attribute.
13071341 All matching selectors from querySelectorAll() are used.
0 commit comments