我正在使用Internet Explorer来自动化网站流程。该网站只能在Internet Explorer中运行,而我不能使用任何其他浏览器。
使用的技术:Python3, Selenium, InternetExplorer
该代码非常适合chromedriver。但是,对于InternetExplorer,在单击第一页后,没有任何效果,并且后续步骤开始崩溃。
我尝试通过按F12打开开发人员控制台来调试错误。 令人惊讶的是,一切都开始正常运行,并且出现了一些小故障。
有人可以向我解释如何解决此问题。是否需要更改一些首选项,以便我无需开发者控制台即可访问该功能。
我遇到以下错误:
NoSuchWindowException: Currently focused window has been closed
或者,我尝试使用document.findElementByID().click()
通过javascript执行点击,但在某些情况下并非全部可用。
答案 0 :(得分:0)
当您尝试与硒元素互动时,您会得到:
线程“ main” org.openqa.selenium.NoSuchWindowException中的异常: 当前聚焦的窗口已关闭。
确保已更改保护模式(请参见上文:https://github.com/seleniumQuery/seleniumQuery/wiki/seleniumQuery-and-IE-Driver#change-the-protected-mode-in-all-zones)。
同样,您是否执行了Required Configuration的所有步骤?
如果您有疑问,请最后一点:
仅对于IE 11,您需要在目标上设置一个注册表项 计算机,以便驱动程序可以维持与实例的连接 它创建的Internet Explorer。对于32位Windows安装, 您必须在注册表编辑器中检查的密钥是 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE。对于64位Windows 装置,关键是 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE。请注意 FEATURE_BFCACHE子项可能存在或可能不存在,应为 如果不存在则创建。重要提示:在此注册表项中,创建一个 DWORD值,名为iexplore.exe,值为0。
与执行带有此内容的.reg文件相同(例如,上面Windows 64位的示例):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE]
"iexplore.exe"=dword:00000000
参考:
NoSuchWindowException: Currently focused window has been closed.