2014-11-03 27 views
4

可能這個問題已經被問過很多次了。但我經歷了所有在stackoverflow相關的問題,但找不到任何滿意的解決方案。NoSuchWindowException未處理:無法在關閉的窗口中查找元素。 IE 11 - 硒C#

好吧,我寫了一個硒自動化代碼在VS2010中使用C#,IE11是我的網頁瀏覽器,我正在執行測試。在Windows 7中使用IEDriverServer 32bit版本打開IE實例。

我已經知道selenium和IE 11之間存在一些兼容性問題,但直到現在我的代碼仍然正常工作,直到我開始出現此錯誤 - 「NoSuchWindowException未處理:無法在關閉的窗口中查找元素。 「

下面是我的步驟: -

IWebDriver driver = new InternetExplorerDriver("D:\\"); 
driver.Navigate().GoToUrl("http://aiaw00572.belldev.dev.bce.ca:8060/UTM_MechHDTool_UserWebApp"); 

driver.FindElement(By.Id("ctl00_cpMainContent_radcboTaskType_Input"), 10).Click(); 

driver.FindElement(By.XPath("//div[@id='ctl00_cpMainContent_radcboTaskType_DropDown']/div/ul/li[2]")).Click(); (this step select a drop down option which performs a postback on the page) 

driver.FindElement(By.Id("ctl00_cpMainContent_utmTaskGrid_ctl00_ctl06_imgbtnStartWorking")).Click();//Getting error on this step. Earlier i was not getting it anywhere 

我尋找這個問題的解決方案,並來了解一個解決方案,其中一些註冊表更改有工作要做,以解決它,但也不會確認它會解決問題。但這裏的問題我甚至不能檢查這個解決方案,因爲我沒有任何管理員權限在我的系統中。

所以,只是想知道別人是否也面臨這個問題,並帶來了一些解決方案,所以他/她可以在這裏分享,因爲我非常需要這裏的解決方案。

+0

從異常中的消息..當瀏覽器窗口執行最後一個FindElement()時,瀏覽器窗口打開。 – bit 2014-11-03 10:44:11

+1

是啊,它是開放的。但我認爲這種聯繫正在破裂(只是猜測)。 – 2014-11-03 10:46:20

+0

然後嘗試舊版本的瀏覽器? – bit 2014-11-03 10:47:12

回答

5

錯誤:

org.openqa.selenium.NoSuchWindowException:無法找到關閉的窗口元素(警告:服務器未提供任何信息棧跟蹤)

Step1。更改Windows註冊表。 如果您使用Internet Explorer 11的x64(64位), 創建文件ie11_win64.reg具有內容:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BFCACHE] 
"iexplore.exe"=dword:00000000 

然後運行它。

如果您使用Internet Explorer 11的x86(32位), 創建文件ie11_win32.reg具有內容:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BFCACHE] 
"iexplore.exe"=dword:00000000 

然後運行它。

Step2。在Internet Explorer中設置。取消所有(或檢查所有的,必須是區域相同的:互聯網,本地Intranet,受信任的站點,受限制的站點)

enter image description here

enter image description here

enter image description here

enter image description here

+1

這是本頁的完整答案 – SketchyTurtle 2017-09-18 19:43:09

0

在我們的案例測試基於Jbehave和Serenity。第一次測試總是通過,第二次失敗,提到異常。爲每個場景打開新的Webdriver實例有助於解決問題。