Нутри с использованием InternetExplorerOptions - PullRequest
0 голосов
/ 12 сентября 2018

Я давно занимаюсь разработкой автоматизации с использованием Selenium и InternetExplorerDriver.Я хочу перейти на Coypu, и я пытаюсь конвертировать мой код.В Selenium я бы уточнил:

InternetExplorerOptions customProfile = new InternetExplorerOptions()
{
  EnsureCleanSession = true,
  EnableNativeEvents = false,
  IgnoreZoomLevel = true,
  IntroduceInstabilityByIgnoringProtectedModeSettings = true,
  RequireWindowFocus = false,
  EnablePersistentHover = false,
  AcceptInsecureCertificates = true,
};
InternetExplorerDriver customDriver = new InternetExplorerDriver(customProfile);

Есть ли способ использовать эти настройки с Coypu?

Когда я пытаюсь передать customDriver в приведенном выше примере кода, выполнив:

browserSession = new BrowserSession(session, customDriver);

он жалуется на то, что "Не удается преобразовать из 'OpenQA.Selenium.IE.InternetExplorerDriver' в 'Coypu.Driver'

Есть ли какой-нибудь способ заставить BrowserSession принять InternetExplorerDriver в качестве параметра?Или есть какой-то способ указать настройки в customProfile в версии SeleniumWebDriver для Coypu?

1 Ответ

0 голосов
/ 07 июня 2019

Вы можете создать свой собственный подкласс Coypu.Drivers.Selenium.SeleniumWebDriver. SeleniumWebDriver имеет защищенный конструктор, принимая OpenQA.Selenium.IWebDriver в качестве первого аргумента.

Используя предоставленные вами фрагменты, вы получите следующий код:

public class MySeleniumWebDriver : SeleniumWebDriver
{
    public MySeleniumWebDriver(IWebDriver webDriver, Browser browser)
        : base(webDriver, browser)
    {
    }
}
var internetExplorerOptions = new InternetExplorerOptions()
{
    EnsureCleanSession = true,
    EnableNativeEvents = false,
    IgnoreZoomLevel = true,
    IntroduceInstabilityByIgnoringProtectedModeSettings = true,
    RequireWindowFocus = false,
    EnablePersistentHover = false,
    AcceptInsecureCertificates = true,
};
var internetExplorerDriver = new InternetExplorerDriver(internetExplorerOptions);

var myDriver = new MySeleniumWebDriver(internetExplorerDriver, Browser.InternetExplorer);

var browserSession = new BrowserSession(session, myDriver);
...