2016-12-28 63 views
1

我注意到,當我啓動IE在SeleniumWebdriver與正確的方法,以消除-noframemerging選項

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 

我d更喜歡讓我的IE在手動和自動化測試中以同樣的方式工作 - 即不要在玩遊戲過程中搞亂數量。那麼這裏有一個更簡單的解決方案嗎?我發現很難理解,爲什麼-noframemerging標誌是由IEServerDriver打開的

回答

1

不,這裏沒有更簡單的解決方案。 IEDriverServer.exe不會修改用於啓動IE的命令行。如果交換機正在被添加到命令行中,它將通過Windows IELaunchURL API完成,這是默認情況下驅動程序啓動瀏覽器以適應保護模式的內容。對「命令行」的使用進行「控制」的方法是使用CreateProcess API,並且已經發現如何使驅動程序執行該操作。 「控制」是故意放在這裏的恐慌報價,因爲不幸的是,除非您使用註冊表項,否則CreateProcess對IE不可靠。此外,IE瀏覽器沒有用戶配置文件的概念,並且您希望保持瀏覽器對非WebDriver使用的行爲正是爲什麼驅動程序不會爲您設置註冊表項。