Как сделать Chrome Headless после входа в систему вручную - PullRequest
0 голосов
/ 14 ноября 2018

Я тестирую свой сайт.Я хочу, чтобы браузер Chrome отключался без ввода данных вручную.

Мой код селена для подключения к веб-сайту.

    var driverService = ChromeDriverService.CreateDefaultService(); 
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.AddArgument("--start-maximized");
    chromeOptions.AddArgument("no-sandbox");
    //chromeOptions.AddArgument("--headless");

    driver.Navigate().GoToUrl("exampleDOTcom");

    while (true)
    {
        Console.WriteLine("Login and Press Enter");
        Console.ReadLine();
        if (CheckLoggedIn())
            break;
    }
    //driver = new ChromeDriver(driverService, chromeOptions, 
    TimeSpan.FromSeconds(180));
    chromeOptions.AddArgument("--headless");

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Если вам нужен безголовый браузер, укажите его перед открытием браузера.я не видел ни одного приложения, выполняющего эту деятельность

На что следует обратить внимание перед использованием безголового браузера :

Безголовые браузеры - это программы моделирования, а не настоящие браузеры,Большинство этих безголовых браузеров эволюционировали достаточно, чтобы имитировать, в довольно близком приближении, как настоящий браузер.Тем не менее, вы не захотите запускать все свои тесты в безголовом браузере.JavaScript - это та область, в которой вы хотели бы быть очень осторожным перед использованием браузера без головы.JavaScript реализован по-разному в разных браузерах.Хотя JavaScript является стандартом, но у каждого браузера есть свои небольшие отличия в том, как они реализовали JavaScript.Это также верно в случае безголовых браузеров.Например, безголовый браузер HtmlUnit использует движок JavaScript Rihno, который не используется ни одним другим браузером.

Вот статья = https://developers.google.com/web/updates/2017/04/headless-chrome

Проверьте это!

0 голосов
/ 14 ноября 2018

Нет , Chrome не сможет работать без головы после входа в систему вручную.

При настройке экземпляра ChromeDriver с ChromeOptions для охвата нового сеанса просмотра Chrome конфигурации ChromeDriver остается неизменным на протяжении всего жизненного цикла ChromeDriver и остается недоступным для редактирования .Таким образом, вы не можете добавить ChromeOptions к экземпляру WebDriver , который в данный момент выполняется.

Даже если вы можете извлечь ChromeDriver и ChromeSession атрибуты, например ID сеанса , Cookies , UserAgent и другие атрибуты сеанса из уже инициированного ChromeDriver и Сеанс просмотра Chrome тем не менее вы не сможете изменить набор атрибутов ChromeDriver .

Более понятный способ - вызвать driver.quit() в методе tearDown(){} для закрытия и уничтожения текущих ChromeDriver и Chrome Browser экземпляров изящно и затем охватываютновый набор ChromeDriver и Chrome Browser экземпляр с новым набором конфигураций.

Соответствующее обсуждение можно найти в Как я могупереподключиться к браузеру, открытому веб-драйвером с селеном?

...