i'm tired search solution load cookies in my case. I've tried several ways, but still get an error.
i use cookies for login example.com
i have create new profile in mozilla firefox.
my code get cookie json:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.chrome.options import Options as ChromeOptions
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
import time, json, pickle, pprint
cookies_location = "cookies.json"
firefox_options = FirefoxOptions()
firefox_options.add_argument('user-data-dir=C:\\Users\\xxx\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\sin8yczx.SeleniumUser')
driver = webdriver.Firefox(executable_path="./geckodriver.exe", options = firefox_options)
def save_cookies(driver, location):
cookies = driver.get_cookies()
with open('cookies_location', 'w', newline='') as outputdata:
json.dump(cookies, outputdata)
driver.get(f"https://www.example.com/")
save_cookies(driver, cookies_location)
driver.quit()
and i get cookie.json like this:
[
{
"name": "ks_sx",
"value": "fsajfafjash8789sadadadasddassadasdasdada",
"path": "/",
"domain": ".example.com",
"secure": false,
"httpOnly": true,
"expiry": 1605446619,
"sameSite": "None"
},
{
"name": "pu_sa",
"value": "blablablabla",
"path": "/",
"domain": ".example.com",
"secure": false,
"httpOnly": true,
"expiry": 1605439425,
"sameSite": "None"
},
bla bla bla bla
]
and then i load use in code:
with open(cookies_location, 'r', newline='') as inputdata:
cookies = json.load(inputdata)
for cookie in cookies:
driver.add_cookie(cookie)
driver.get(f"https://www.example.com/")
but, i get error like this.
Traceback (most recent call last):
File "getcookies.py", line 84, in <module>
driver.add_cookie(cookie)
File "C:\miniconda3\envs\xxx\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 894, in add_cookie
self.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})
File "C:\miniconda3\envs\xxx\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\miniconda3\envs\xxx\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidCookieDomainException: Message: Cookies may only be set for the current domain (user-data-dir=c)