Как включить 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"
Я попробовал все, но я просто не могу найти решение для этого.
что я должен делать?
Пожалуйста, помогите мне здесь.
Дайте мне знать, если какие-то детали отсутствуют.
Ответы
Ответ 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