我正在使用C#在VS2010中编写一个selenium自动化代码,IE11是我的网络浏览器,我正在进行测试。在Windows 7中使用IEDriverServer 32位版本打开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 :(得分:7)
以管理员身份运行IEDriverServer或为所有区域设置保护模式后为我工作(https://stackoverflow.com/a/21373224/217408)
答案 1 :(得分: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中进行设置。取消选中全部(或全部检查,区域必须相同:Internet,本地Intranet,受信任的站点,受限制的站点)
答案 2 :(得分:0)
对我而言,aswear是从http://heliumhq.com/docs/internet_explorer下载此注册表文件并运行它
答案 3 :(得分:0)
在我们的案例中,测试基于Jbehave和Serenity。第一个测试总是通过,第二个测试失败并提到异常。为每个方案打开新的Webdriver实例有助于解决问题。