删除-noframemerging选项

时间:2016-12-28 08:17:04

标签: c# internet-explorer selenium-webdriver

我注意到当我在SeleniumWebdriver中使用

启动IE时
var ieoptions = new InternetExplorerOptions()
{
    EnablePersistentHover = false,
    EnsureCleanSession = true,
    RequireWindowFocus = true,
};

我的IE命令行中有这个-noframemerging标志。我不想要这面旗帜 经过一番挖掘后,我设法发现我可以通过添加

来解决这个问题
 ForceCreateProcessApi = true,
 BrowserCommandLineArguments = "-framemerging"

但这只适用于附带的注册表

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main = 0

我更喜欢让我的IE在手动和自动测试中以相同的方式工作 - 即不要搞乱游戏中的进程数量。那么这里有更简单的解决方案吗?我发现很难理解为什么IEServerDriver打开-noframemerging标志

1 个答案:

答案 0 :(得分:2)

不,这里没有更简单的解决方案。 IEDriverServer.exe不会修改用于启动IE的命令行。如果将一个开关添加到命令行,它将由Windows IELaunchURL API完成,这是驱动程序默认使用的启动浏览器以便能够容纳保护模式的API。如何控制"使用什么命令行是使用CreateProcess API,并且您已经发现了如何让驱动程序执行此操作。 "控制与#34;故意在这里引用恐慌引用,因为不幸的是,除非您使用注册表项,否则CreateProcess对IE不可靠。此外,IE没有用户配置文件的概念,并且您希望维护浏览器的非WebDriver使用行为,这正是驱动程序没有为您设置注册表项的原因。 / p>