遇到一个IE升级到IE8之后脚本无法跑的问题。那么对于这样的问题,我们需要如何去处理?
2012-04-06 10:41
1316 查看
问题描述 项目脚本一开始就是通过QTP内置关键字去关闭所有IE,接着再通过关键字systemutil.Run “C:\Program Files\Internet Explorer\iexplore.exe” 来启动IE。接下来是开始一个Browser().sync的Code,整个脚本就正好到Sync这个方法这里开始出错。
问题分析
首先,我们到这一步出错的地方用Debug,再用spy下会发现,Browser已经被识别成糟糕的Window。所以我们可以判断这个情况是因为BHO控件没有加载进IE而导致的。一般导致这个情况的,是先启动IE再启动QTP导致的。但这个问题为什么会在这里出现?
其次,我们使用了其它3种常用方法去启动IE8,
1,
Set IE=createobject(“internetExplorer.application”)
IE.visible=true
2,
systemutil.Run “C:\Program Files\Internet Explorer\iexplore.exe”
3,
set wshshell = createobject(“wscript.shell”)
wshshell.exec “C:\Program Files\Internet Explorer\iexplore.exe”
4,通过Automation-Recored and run setting中的设置URL路径
其中前3种方法在QTP中启动IE都无加载控件。但是,第4种方法却能够成功的把这个IE的对象识别成Browser.
问题解决
1,在脚本中,我们直接使用systemutil.Run “iexplore.exe” 便可成功识别出IE8。
2,在IE7中,无论我们用那一种方式,是否是绝对路径或者是iexplore.exe,都能够成功识别。
3,导致这个问题的发生,有可能是IE8的启动机制会有所特别。所以QTP11会为IE8设置一个专门的启动方案,而这个方案的关键字就是iexplore.exe而不是它的整个路径,因为加入一个完整路径会变成启动某一个程序,QTP便不会做特殊处理,直接启动,而第4个方法应该是更能说明这个点。
总结:
1) QTP开启之后,才能开启IE。
2) QTP启动IE之后, BHO控件会加载进IE。
a) BHO控件 (Browser Helper Object), 它是IE和第三方程序的相互接口,程序员可以通过代码来控制浏览器的行为。当打开QTP后,然后开启IE 浏览器 时, QTP会默认把 BHO一个 dll类注入到 浏览器 来采取识别浏览器里的对象元素。
3)BHO加载成功的状态是 Enabled
问题分析
首先,我们到这一步出错的地方用Debug,再用spy下会发现,Browser已经被识别成糟糕的Window。所以我们可以判断这个情况是因为BHO控件没有加载进IE而导致的。一般导致这个情况的,是先启动IE再启动QTP导致的。但这个问题为什么会在这里出现?
其次,我们使用了其它3种常用方法去启动IE8,
1,
Set IE=createobject(“internetExplorer.application”)
IE.visible=true
2,
systemutil.Run “C:\Program Files\Internet Explorer\iexplore.exe”
3,
set wshshell = createobject(“wscript.shell”)
wshshell.exec “C:\Program Files\Internet Explorer\iexplore.exe”
4,通过Automation-Recored and run setting中的设置URL路径
其中前3种方法在QTP中启动IE都无加载控件。但是,第4种方法却能够成功的把这个IE的对象识别成Browser.
问题解决
1,在脚本中,我们直接使用systemutil.Run “iexplore.exe” 便可成功识别出IE8。
2,在IE7中,无论我们用那一种方式,是否是绝对路径或者是iexplore.exe,都能够成功识别。
3,导致这个问题的发生,有可能是IE8的启动机制会有所特别。所以QTP11会为IE8设置一个专门的启动方案,而这个方案的关键字就是iexplore.exe而不是它的整个路径,因为加入一个完整路径会变成启动某一个程序,QTP便不会做特殊处理,直接启动,而第4个方法应该是更能说明这个点。
总结:
1) QTP开启之后,才能开启IE。
2) QTP启动IE之后, BHO控件会加载进IE。
a) BHO控件 (Browser Helper Object), 它是IE和第三方程序的相互接口,程序员可以通过代码来控制浏览器的行为。当打开QTP后,然后开启IE 浏览器 时, QTP会默认把 BHO一个 dll类注入到 浏览器 来采取识别浏览器里的对象元素。
3)BHO加载成功的状态是 Enabled
相关文章推荐
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 邻乐帮:因为我怕下辈子遇不到你,所以给你当下最好的 人们说,遇到一个对的人的概率是很小的,如果没遇到,那么我们需要耐心去等,如果遇到了,那么,我们就要好好珍惜。 对于我来说,我现在的女朋友就是那个
- VS2010无法调试问题解决 最近,因为公司开发的需要,对开发环境进行全面的升级,在这其中也遇到了不少问题,在之后将陆续整理出来,以便以后查看。 之前开发环境:VS2008,ArcGIS9.3,Ar
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- WIN7下的WCF遇到的问题:HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理
- “Microsoft Office Word 遇到问题需要关闭。我们对此引起的不便表示抱歉”处理方法之一
- 多个进程同时等待网络的连接事件,当这个事件发生时,这些进程被同时唤醒,我们知道进程被唤醒,需要进行内核重新调度,这样每个进程同时去响应这一个事件,而最终只有一个进程能处理事件成功,其他的进程在处理该事件失败后重新休眠或其他。
- 技术转载(鼠标点击X窗口关闭IE的同时清空session,最基本的就是处理用户重复登陆需要用到,我想这个的关键在于如何捕捉到关闭IE这个动作,之后再根据自身的需要使用session.invalidate()或者session.removeAttribute( "xxx "))
- WCF布署遇到问题,报错:HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
- AndroidStudio低版本(1.5)升级到高版本(2.1)之后你可能会遇到的其中一个项目构建问题
- WIN7下的WCF遇到的问题:HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理
- 今天遇到一个问题:在程序中加入的定时触发器,当时出现这样一个问题,触发器定时2秒,程序从后台查询数据经过复杂处理后时间超过了2秒,我查阅好些网络上说有可能触发器等待程序执行完毕后,在触发下一次,也有说
- 升级到AndroidStudio3.0 之后的遇到问题的处理(新建、方法数限制等)
- 产品经理如何与强势的技术沟通? 技术比较有资历,会以技术无法实现等方面的原因拒绝处理产品提出的需求。 你们是否遇到这样的技术? 产品懂技术的话,是不是会好一些,因为可以和技术说“行话”了,并且产品懂技术就不会被忽悠了。
- ie8此加载项无法恢复&网站还原错误问题解决=lr成功打开ie成功录制脚本
- 产品经理如何与强势的技术沟通? 技术比较有资历,会以技术无法实现等方面的原因拒绝处理产品提出的需求。 你们是否遇到这样的技术? 产品懂技术的话,是不是会好一些,因为可以和技术说“行话”了,并且产品懂技术就不会被忽悠了。