一段时间以来,我一直在使用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中指定设置?
答案 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);