C# Selenium - безголовый браузер - PullRequest
2 голосов
/ 04 марта 2020

Я разрабатываю небольшое приложение (C#), которое автоматизирует тестирование на веб-сайте с помощью Selenium. Все идет хорошо. Но когда я пробую то же самое приложение с «безголовым» браузером, тест не работает. У меня проблема с кодом ниже:

var emailTextBox = driver.FindElement(By.Id("j_username"));

OpenQA.Selenium.WebDriverException: 'HTTP-запрос к удаленному серверу WebDriver для URL http://localhost: 49309 / session / d4416c4b -e674-468b-8d6e-6a8bfc9bdf1d / element истекло время ожидания через 60 секунд. '

Тот же тест работает с обычным браузером, но не в режиме без заголовка, я пытаюсь использовать Firefox , Chrome, Призрак JS (все без головы) и это не работает ...

У вас есть идея?

Весь мой код:

'' '

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

namespace MacDo
{
    class Program
    {
        static void Main(string[] args)
        {
            var driverService = FirefoxDriverService.CreateDefaultService();
            driverService.HideCommandPromptWindow = true;

            var options = new FirefoxOptions();
            options.AddArguments("-headless");

            IWebDriver driver = new FirefoxDriver(driverService, options);
            driver.Url = "https://www.mcdonalds.fr/";
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10000);

            System.Threading.Thread.Sleep(2000);

            var seConnecter = driver.FindElement(By.Id("seconnecter"));
            seConnecter.Click();

            driver.Close();
            driver.Quit();

            Console.ReadKey();
        }
    }
}

' ''

Я использую Firefox Браузер 73.0.1 (32 бита) (-> Я использую Geckodriver версии 0.26.0)

Как уже было сказано, работает хорошо, но не в режиме без головы ...

1 Ответ

0 голосов
/ 09 марта 2020

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

options.addArguments("window-size=1920,1080");

Стоит попробовать!

...