首页 > 解决方案 > Coypu 使用 InternetExplorerOptions

问题描述

一段时间以来,我一直在使用 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 作为参数?或者有没有办法在 Coypu 版本的 SeleniumWebDriver 中指定 customProfile 中的设置?

标签: coypu

解决方案


您可以创建自己的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);

推荐阅读