Coypu使用InternetExplorerOptions

时间:2018-09-12 16:19:33

标签: coypu

一段时间以来,我一直在使用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用作参数?还是有某种方法可以在SeleniumWebDriver的Coypu版本的customProfile中指定设置?

1 个答案:

答案 0 :(得分:0)

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