[英]Double number of items returned by Desktop.ChildObjects
我正在尝试使用QTP11获取所有打开的浏览器对象。 我使用的代码如下:
Set descBrowser = Description.Create
descBrowser("micClass").Value = "Browser"
Set objChildren = Desktop.ChildObjects( descBrowser )
在测试期间,我打开了两个IE浏览器窗口,但是代码返回的集合显示了四个找到的项目。 我还检查了正在运行的进程,这些进程显示正确数量的2个正在运行的进程。
我还检查了3个浏览器是否打开,在这种情况下,它显示了6个与描述匹配的对象。
谁能解释为什么会这样?
UFT 11.52 + Win7
我尝试了几种策略来完成此操作(PID,标题,HWND,浏览器(索引)),但仍然没有成功,我不确定该补丁是否已经存在。
我能想象的是,对于一个简单的关闭任务,当我尝试关闭以随机方式使测试崩溃的Browser()对象时,UFT也会显示“对象不可见”的问题。
最好的结果是取消了一堆已经存在的IExplorer Windows(Tabs)窗口。
有人可以提供检查已安装补丁程序的步骤吗?
我看到相同的行为(仅适用于IE,而不适用于Firefox)。
一种解决方法是过滤掉重复项。 对于IE,如果您比较objChildren(i).GetROProperty("hwnd")
,则可以过滤出具有相同值的值,但是如果您还使用Firefox,则无法使用,因为在Firefox中,如果您有多个选项卡,它们都具有相同的hwnd 。
如果必须考虑FF,则可以使用CreationTime属性(而不是hwnd )过滤出重复项。
我遇到了同样的问题,必须退出补丁QTPWEB_00090才能使它工作。 查看是否已安装该QTP补丁并将其撤消。
QTPWEB_00107 -Windows资源管理器中的Web浏览器控件识别已解决此问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.