Как включить режим IE в браузере Chromium Edge в селене С#?

Я хочу автоматизировать веб-сайт в Edge, для которого требуется включить режим IE. Как запустить Edge в режиме IE в селене?

Код ниже, который я сейчас использую, запускает Edge в режиме, отличном от IE, который не отображает веб-сайт должным образом.

    Dim edgeDriverService = Microsoft.Edge.SeleniumTools.EdgeDriverService.CreateChromiumService()
    Dim edgeOptions = New Microsoft.Edge.SeleniumTools.EdgeOptions()
    edgeOptions.PageLoadStrategy = PageLoadStrategy.Normal
    edgeOptions.UseChromium = True
    Dim driver As IWebDriver = New Microsoft.Edge.SeleniumTools.EdgeDriver(edgeDriverService, edgeOptions)
    driver.Navigate().GoToUrl("http://example.com")

Пробовал использовать edgeOptions.AddAdditionalCapability("ie.edgechromium", True), но это не сработало


person anandhu    schedule 22.08.2020    source источник


Ответы (1)


Вы можете обратиться к разделу Автоматизация режима Internet Explorer в эта статья о том, как использовать режим IE в Edge Chromium в Selenium C#.

Вы можете обратиться к следующим шагам:

  1. Загрузите последнюю версию IEDriverServer с сайта Selenium. Здесь я использую 32-битную версию Windows IE 3.150.1.
  2. Подготовьтесь к использованию IEDriver в соответствии с этим.
  3. Создайте консольный проект C# с помощью Visual Studio.
  4. Установите пакет Nuget Selenium.WebDriver 3.141.0 из диспетчера пакетов Nuget.
  5. Добавьте в проект приведенный ниже код и измените пути на свои в коде:
static void Main(string[] args) 
{ 
    var dir = "{FULL_PATH_TO_IEDRIVERSERVER}"; 
    var driver = "IEDriverServer.exe"; 
    if (!Directory.Exists(dir) || !File.Exists(Path.Combine(dir, driver))) 
    { 
        Console.WriteLine("Failed to find {0} in {1} folder.", dir, driver); 
        return; 
    } 

    var ieService = InternetExplorerDriverService.CreateDefaultService(dir, driver); 
    var ieOptions = new InternetExplorerOptions{}; 
    ieOptions.AddAdditionalCapability("ie.edgechromium", true); 
    ieOptions.AddAdditionalCapability("ie.edgepath", "{FULL_PATH_TO_MSEDGE.EXE}"); 

    var webdriver = new InternetExplorerDriver(ieService, ieOptions, TimeSpan.FromSeconds(30)); 
    webdriver.Url = "http://www.example.com"; 
}
  1. Запустите проект для проверки:

введите здесь описание изображения

Примечания:

  1. Обязательно закройте все вкладки и окна браузера Edge перед запуском кода.
  2. Используйте полные пути в коде. Например: ieOptions.AddAdditionalCapability("ie.edgepath", @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe");.
person Yu Zhou    schedule 24.08.2020
comment
Привет, спасибо за это, это сработало. Отметив это как решение, поскольку оно отвечает на мой вопрос. Однако я столкнулся с другой проблемой, мне также пришлось сделать Edge Headless. Как я теперь это сделаю?? Ранее я дал его как edgeOptions.AddArguments(--headless). Так как теперь я использую ieoptions, я не могу сделать без головы? :-( - person anandhu; 24.08.2020
comment
Я заметил, что этот код не работает, если у меня уже открыты краевые окна. есть ли способ исправить это? если окно Edge уже открыто, оно открывает другую вкладку и отображает Это начальная страница для сервера WebDriver, после чего ничего не происходит - person anandhu; 25.08.2020
comment
Да, поэтому я указываю в примечаниях, что вам нужно закрыть все вкладки и окна браузера Edge перед запуском кода. Только так мы можем избежать этого. - person Yu Zhou; 26.08.2020