1

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)
Hendra
  • 61
  • 1
  • 9

0 Answers0