@@ -1479,6 +1479,67 @@ def save_page_source(self, name, folder=None):
1479
1479
"""
1480
1480
return page_actions .save_page_source (self .driver , name , folder )
1481
1481
1482
+ def save_cookies (self , name = "cookies.txt" ):
1483
+ """ Saves the page cookies to the "saved_cookies" folder. """
1484
+ cookies = self .driver .get_cookies ()
1485
+ json_cookies = json .dumps (cookies )
1486
+ if name .endswith ('/' ):
1487
+ raise Exception ("Invalid filename for Cookies!" )
1488
+ if '/' in name :
1489
+ name = name .split ('/' )[- 1 ]
1490
+ if len (name ) < 1 :
1491
+ raise Exception ("Filename for Cookies is too short!" )
1492
+ if not name .endswith (".txt" ):
1493
+ name = name + ".txt"
1494
+ folder = constants .SavedCookies .STORAGE_FOLDER
1495
+ abs_path = os .path .abspath ('.' )
1496
+ file_path = abs_path + "/%s" % folder
1497
+ if not os .path .exists (file_path ):
1498
+ os .makedirs (file_path )
1499
+ cookies_file_path = "%s/%s" % (file_path , name )
1500
+ cookies_file = codecs .open (cookies_file_path , "w+" )
1501
+ cookies_file .writelines (json_cookies )
1502
+ cookies_file .close ()
1503
+
1504
+ def load_cookies (self , name = "cookies.txt" ):
1505
+ """ Loads the page cookies from the "saved_cookies" folder. """
1506
+ if name .endswith ('/' ):
1507
+ raise Exception ("Invalid filename for Cookies!" )
1508
+ if '/' in name :
1509
+ name = name .split ('/' )[- 1 ]
1510
+ if len (name ) < 1 :
1511
+ raise Exception ("Filename for Cookies is too short!" )
1512
+ if not name .endswith (".txt" ):
1513
+ name = name + ".txt"
1514
+ folder = constants .SavedCookies .STORAGE_FOLDER
1515
+ abs_path = os .path .abspath ('.' )
1516
+ file_path = abs_path + "/%s" % folder
1517
+ cookies_file_path = "%s/%s" % (file_path , name )
1518
+ f = open (cookies_file_path , 'r' )
1519
+ json_cookies = f .read ().strip ()
1520
+ f .close ()
1521
+ cookies = json .loads (json_cookies )
1522
+ for cookie in cookies :
1523
+ if 'expiry' in cookie :
1524
+ del cookie ['expiry' ]
1525
+ self .driver .add_cookie (cookie )
1526
+
1527
+ def delete_all_cookies (self ):
1528
+ """ Deletes all cookies in the web browser.
1529
+ Does NOT delete the saved cookies file. """
1530
+ self .driver .delete_all_cookies ()
1531
+
1532
+ def delete_saved_cookies (self , name = "cookies.txt" ):
1533
+ """ Deletes the cookies file from the "saved_cookies" folder.
1534
+ Does NOT delete the cookies from the web browser. """
1535
+ folder = constants .SavedCookies .STORAGE_FOLDER
1536
+ abs_path = os .path .abspath ('.' )
1537
+ file_path = abs_path + "/%s" % folder
1538
+ cookies_file_path = "%s/%s" % (file_path , name )
1539
+ if os .path .exists (cookies_file_path ):
1540
+ if cookies_file_path .endswith ('.txt' ):
1541
+ os .remove (cookies_file_path )
1542
+
1482
1543
def wait_for_ready_state_complete (self , timeout = None ):
1483
1544
try :
1484
1545
# If there's an alert, skip
0 commit comments