Изменение файла cookie ROBLOSECURITY в Selenium

#python #roblox

#python #roblox

Вопрос:

Я пытаюсь изменить файл cookie .ROBLOSECURITY на www.roblox.com . Это для попытки робота, который будет перебирать учетные записи.

Я получаю сообщение об ошибке:

«selenium.common.exceptions.Исключение UnableToSetCookieException: сообщение: невозможно установить файл cookie
(информация о сеансе: chrome = 86.0.4240.75) «

Пока это код…

 with open("CookieList.txt") as CookieFile:
    Cookies = CookieFile.readlines()
    for Cookie in Cookies:
        PATH = "C:Program Files (x86)chromedriver.exe"
        driver = webdriver.Chrome(PATH)
        driver.get("https://www.roblox.com/games/"   GameID   "/Name/")
        #input("Log into your account in the new browser. Type 'Done' when finished.n")
        roblocookie = {
            'name': "ROBLOSECURITY",
            'value': Cookie,
        }
        driver.add_cookie(roblocookie)
  

Я пытался создать «ROBLOSECURITY», «.ROBLOSECURITY» и изменить домены на те, которые есть на веб-сайте, но безрезультатно.

Ответ №1:

Чтобы использовать любой из методов обработки файлов cookie в WebDriver, нам сначала нужно импортировать класс Cookie. Для этого мы используем:

 import org.openqa.selenium.Cookie;
  

Извлечение всех файлов cookie

 // This method gets all the cookies
public Set<Cookie> getAllCookies() {
    return driver.manage().getCookies();
}
  

Извлечение именованного файла cookie

 // This method gets a specified cookie
public Cookie getCookieNamed(String name) {
    return driver.manage().getCookieNamed(name);
}
  

Извлеките значение файла cookie

 // This method gets the value of a specified cookie
public String getValueOfCookieNamed(String name) {
    return driver.manage().getCookieNamed(name).getValue();
}
  

Добавить файл cookie

 // This method adds or creates a cookie
public void addCookie(String name, String value, String domain, String path, Date expiry) {
    driver.manage().addCookie(
    new Cookie(name, value, domain, path, expiry));
}
  

Добавьте набор файлов cookie

 // This method adds set of cookies for a domain
public void addCookiesToBrowser(Set<Cookie> cookies, String domain) {
    for (Cookie c : cookies) {
        if (c != null) {
            if (c.getDomain().contains(domain)){
                driver.manage().addCookie(
                new Cookie(name, value, domain, path, expiry));
            }
        }
    }
    driver.navigate().refresh();
}
  

Часть этого ответа была взята отсюда.

Комментарии:

1. Какой язык? Вопрос помечен Python, но примеры кода — нет. Это Java?

Ответ №2:

Нет способа отредактировать файл cookie. Вам придется удалить файл cookie и создать новый.

Удаление файла cookie:

 from selenium import webdriver
driver = webdriver.Chrome()

# Navigate to the URL
driver.get("http://www.example.com")
driver.add_cookie({"name": "test1", "value": "cookie1"})
driver.add_cookie({"name": "test2", "value": "cookie2"})

# Delete a cookie with name 'test1'
driver.delete_cookie("test1")
  

Создайте файл cookie:

 from selenium import webdriver

driver = webdriver.Chrome()

driver.get("http://www.example.com")

# Adds the cookie into current browser context
driver.add_cookie({"name": "key", "value": "value"})