繁体   English   中英

C#Selenium Webdriver在Internet Explorer中捕获javascript错误

[英]C# Selenium webdriver Catch javascript errors in Internet explorer

是否有可能捕获并记录在IE中通过我的测试运行可能发生的所有JS错误?

当问这样的问题时,通常要捕获两类JavaScript错误。 首先是要在正在自动化的网站的源代码中捕获JavaScript错误。 错误的第二种类型是尝试捕获由WebDriver代码执行的JavaScript代码中的JavaScript错误。 不幸的是,没有一种通过Selenium WebDriver捕获IE中所有JavaScript错误的好方法。 这是库的常见功能要求,并且在项目的问题跟踪器中进行了开放增强。 您可以使用一些技术来最大程度地捕获JavaScript错误,但是它们都有其局限性。

对于JavaScript错误的第一类,您可以尝试插入一个钩住页面中window.onError事件的脚本。 这里的限制是它将丢失在激活onError挂钩之前执行的脚本中发生的任何JavaScript错误。 通常,这会错过在onLoad事件期间执行的脚本中发生的许多错误。

对于第二类错误,即IE驱动程序执行JavaScript的方式,IE的脚本执行引擎不允许我们捕获执行中的错误。 当执行脚本时,如果有错误,驱动程序将从脚本引擎接收到HRESULT,上面写着:“我已经在UI中显示了错误,所以我将不向您提供任何更多信息。” 在这种情况下,提高驱动程序的日志记录级别只会告诉您发生JavaScript错误,而不会告诉您有关JavaScript错误的任何其他信息。 对于此类错误,开发团队正在积极研究可能的解决方案,但是这里没有明确的前进道路,也没有任何时间框架来改变这种行为。

相信您可以使用日志开关

--log-file=<logFile>

如文档中所述: http : //code.google.com/p/selenium/wiki/InternetExplorerDriver

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM