Хочу войти по кукам, но при их загрузке выходит ошибка: OpenQA.Selenium.InvalidCookieDomainException: invalid cookie domain: cookie 'domain' mismatch Для того, чтобы их загрузить, по идее, надо быть на том же домене, что и кук. Но для куков стима, например, это в принципе невозможно. Там есть кук для login.steampowered.com, а если на него перейти, то сразу же редиректнет на другую страницу. Есть ли какой нибудь способ обойти это ограничение и загрузить любые куки? static void Main(string[] args) { IWebDriver driver = new ChromeDriver(); string[] allcookies = File.ReadAllLines("test.txt"); List<Cookie> cookies = CookieConverter.ConvertNetscapeCookies(allcookies); driver.Url = "https://steamcommunity.com/"; foreach (Cookie cookie in cookies) { Console.WriteLine("Domain: "+cookie.Domain); driver.Manage().Cookies.AddCookie(cookie); } driver.Url = "https://steamcommunity.com/"; } CSHARP static void Main(string[] args) { IWebDriver driver = new ChromeDriver(); string[] allcookies = File.ReadAllLines("test.txt"); List<Cookie> cookies = CookieConverter.ConvertNetscapeCookies(allcookies); driver.Url = "https://steamcommunity.com/"; foreach (Cookie cookie in cookies) { Console.WriteLine("Domain: "+cookie.Domain); driver.Manage().Cookies.AddCookie(cookie); } driver.Url = "https://steamcommunity.com/"; } пример кука [ { "domain":"store.steampowered.com", "path":"\/", "name":"browserid", "value":"1234" }, { "domain":"store.steampowered.com", "path":"\/", "name":"sessionid", "value":"5678" }, { "domain":"help.steampowered.com", "path":"\/", "name":"steamCountry", "value":"dsadsadsadsa" }, { "domain":"checkout.steampowered.com", "path":"\/", "name":"steamLoginSecure", "value":"dasdasdsadas" }, { "domain":"login.steampowered.com", "path":"\/", "name":"steamRefresh_steam", "value":"dsadsadsaads" }, { "domain":"help.steampowered.com", "path":"\/", "name":"timezoneOffset", "value":"-10800,0" }, { "domain":"store.steampowered.com", "path":"\/", "name":"app_impressions", "value":"dsadsaads" }, { "domain":"store.steampowered.com", "path":"\/", "name":"deep_dive_carousel_focused_app", "value":"1234" }, { "domain":"store.steampowered.com", "path":"\/", "name":"deep_dive_carousel_method", "value":"default" }, { "domain":".steamcommunity.com", "path":"\/", "name":"_ga", "value":"dsadsadsa" }, { "domain":"steamcommunity.com", "path":"\/", "name":"sessionid", "value":"dasdsadassd" }, { "domain":"steamcommunity.com", "path":"\/", "name":"steamCountry", "value":"dsadasdasdas" }, { "domain":"steamcommunity.com", "path":"\/", "name":"steamLoginSecure", "value":"dsadsadasasd" }, { "domain":"steamcommunity.com", "path":"\/", "name":"browserid", "value":"1234" }, { "domain":"steamcommunity.com", "path":"\/", "name":"app_impressions", "value":"dsadasdasdsa" }, { "domain":"steamcommunity.com", "path":"\/", "name":"timezoneOffset", "value":"-10800,0" } ]
liljaba Проблема, которую вы столкнулись, связана с ограничением безопасности браузера, которое не позволяет загружать куки для доменов, отличных от текущего домена страницы. В вашем случае, куки для домена "login.steampowered.com" не могут быть загружены, так как вы находитесь на домене "steamcommunity.com". Однако, есть несколько способов обойти это ограничение: 1. Используйте расширение браузера, которое позволяет управлять куками. Например, в Google Chrome вы можете использовать расширение "EditThisCookie". Оно позволяет вам импортировать куки из файла и установить их для любого домена. 2. Вместо использования Selenium WebDriver для загрузки кук, вы можете использовать HTTP-клиент, такой как HttpClient в C#, чтобы отправить запрос с заголовком "Cookie", содержащим все необходимые куки. Это позволит вам установить куки для любого домена. Вот пример использования HttpClient для отправки запроса с куками: using System; using System.Net.Http; using System.Net.Http.Headers; static async Task Main(string[] args) { HttpClient client = new HttpClient(); string[] allcookies = File.ReadAllLines("test.txt"); string cookiesString = string.Join("; ", allcookies); client.DefaultRequestHeaders.Add("Cookie", cookiesString); HttpResponseMessage response = await client.GetAsync("https://steamcommunity.com/"); string responseBody = await response.Content.ReadAsStringAsync(); Console.WriteLine(responseBody); } CSHARP using System; using System.Net.Http; using System.Net.Http.Headers; static async Task Main(string[] args) { HttpClient client = new HttpClient(); string[] allcookies = File.ReadAllLines("test.txt"); string cookiesString = string.Join("; ", allcookies); client.DefaultRequestHeaders.Add("Cookie", cookiesString); HttpResponseMessage response = await client.GetAsync("https://steamcommunity.com/"); string responseBody = await response.Content.ReadAsStringAsync(); Console.WriteLine(responseBody); } Вы должны заменить "test.txt" на путь к файлу с вашими куками. Надеюсь, это поможет вам загрузить куки для разных доменов. Если у вас возникнут дополнительные вопросы, пожалуйста, дайте мне знать.
Используй Playwright вместо Selenium - Насколько я помню там нет пробем установить куки для домена до того как открыть страницу
Если актуально,то сделай сначала загрузку страницы,потом загрузку куки.и после перезагрузку и они импортнуться