Подтвердить что ты не робот

Как включить cookie в phantomjsdriver selenium С#?

Ниже приведен мой код:

case BrowserType.PhantomJS:
               var service = PhantomJSDriverService.CreateDefaultService(Path.Combine(_rootPath, @"Packages\"));
               var cookieFilePath=Path.Combine(_rootPath, @"Packages\cookie.txt");
                 if (!File.Exists(cookieFilePath))
                       File.Create(cookieFilePath);

                 var phantomjsoptions = new PhantomJSOptions();
                 driver = new PhantomJSDriver(service,phantomjsoptions);
                 var cookieJar = driver.Manage().Cookies;
                 driver.Navigate().GoToUrl(SeleniumConfiguration.Current.BaseURL);
                 cookieJar.AddCookie(new Cookie("x", "12345"));
                 return driver;

В основном проблема в том, что я не могу войти в свое тестовое приложение, потому что я получаю сообщение об ошибке:

"Ваш браузер настроен на блокировку файлов cookie"

Я попробовал все, но я просто не могу найти решение для этого.
что я должен делать?
Пожалуйста, помогите мне здесь.
Дайте мне знать, если какие-то детали отсутствуют.

4b9b3361

Ответ 1

Вы должны подождать, пока страница была загружена, а затем установите cookie:

driver.Navigate().GoToUrl(SeleniumConfiguration.Current.BaseURL);
//Wait page loaded
cookieJar.AddCookie(new Cookie("x", "12345"));

Попробуйте это решение: fooobar.com/questions/62206/...

driver.Navigate().GoToUrl(SeleniumConfiguration.Current.BaseURL);//some fake url
driver.Manage().Window.Maximize();
driver.SwitchTo().ActiveElement();
cookieJar.AddCookie(new Cookie("x", "12345"));
driver.Navigate().GoToUrl(SeleniumConfiguration.Current.BaseURL);//cookie exsist

Ответ 2

RFC 2109 прямо запрещает прием файлов cookie с URL-адресов с IP-адресами.

Вы почти наверняка получаете доступ к своему тестовому серверу по IP-адресу.

Вы можете попробовать настроить какой-нибудь DNS/хост файл, чтобы позволить вам использовать поддельное доменное имя.

Ответ 3

Вы можете выполнить следующие шаги

1) Создайте профиль пользователя в firefox или в браузере Chrome. 2) Подтвердите, что опция "принять файлы cookie" включена, выбрав параметр "Настройки браузеров". 3) Загрузите свой профиль через селен.

Таким образом, это обеспечит включение опции cookie, и ваши сеансы также будут сохранены в кеше браузера.

для хрома

System.setProperty("webdriver.chrome.driver", "browser/chromedriverlinux");
ChromeOptions options = new ChromeOptions();
options.addArguments("--user-data-dir=/home/rohit/.config/google-chrome/Profile 1");
options.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(options);

Для Firefox

ProfilesIni profile = new ProfilesIni();
FirefoxProfile ffprofile = profile.getProfile("ROHIT");
WebDriver driver = new FirefoxDriver(ffprofile);

Чтобы создать профиль в firefox, попробуйте выполнить команду в терминале firefox -p