51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3040|回复: 5
打印 上一主题 下一主题

[原创] 关于QTP设置IE的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-3-3 17:30:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我要达到一个目的,就是tools-->internet options-->Advanced 里面的Disable script debugging 和 Display a notification about every script error全部被选上,请问怎么做?

我首先用的是:
Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").Select "Browsing;Display a notification about every script error"

这种方法,结果是如果脚本运行的时候,此选项已经被选上,结果运行之后就取消选择了。

然后我看帮助,觉得SetItemStatue可行,结果总是运行错误。我是这样写的:
Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").SetItemState 8 , micChecked
8是index,帮助文档的说明如下:

object.SetItemState Item, State

Argument              Description

object                    A test object of type WinListView.

Item                       Required. A Variant value. The item to select from the list-view control. The item value
                              (with  quotes) or numeric index (without quotes) can denote the item. The first item in a list-view
                              control is numbered  0.  

State                      Required. An Integer value.
                              The object's state. The state can either be an index, or one of the following state constants:

                               micChecked (1)--Selects the item's check box
                               micUnchecked (0)--Clears the item's check box micClick (-1)--Clicks the state icon
                               micDblClick (-2)--Double-clicks state icon

可是我就是不知道我错在哪里,运行提示:Run Error:The operation cannot be performed
急求相救,不胜感激~~

[ 本帖最后由 风雪夜归人 于 2009-3-3 17:32 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-3-3 17:47:43 | 只看该作者
Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").Select (7)
Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").Select (8)
这样也可以执行,只是不知道怎么确定那两个是被选上了的。。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-3-4 10:12:29 | 只看该作者
可以用判断执行,可是不管该选项是否选中,总是False。。
而且不能通过wintreeview(xx).state( )方法来判断checkbox是否被选中,提示没有checkbox。。崩溃了
代码如下:
print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").CheckItemProperty(7,"selected",true,1000)
print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").CheckItemProperty(8,"state",1)

运行有四个错误:
Property "selected" of item "7" has the actual value False. The expected value was True.
Property "state" of item "8" has the actual value 0. The expected value was 1.

哪位大虾帮下忙啊。。。谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-3-4 10:34:27 | 只看该作者
难道没有人提个意见?郁闷啊。。

[ 本帖最后由 风雪夜归人 于 2009-3-4 10:36 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-3-4 11:07:18 | 只看该作者
应该是解决了。。讲下我的思路:
首先,选中Display a notification about every script error 此项,已经知道其index为 8 ,print出其所有属性
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"selected")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"state")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"expanded")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"firstchild")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"haschildren")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"imageindex")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"nextsibling")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"overlayimage")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"parent")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"path")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"selected")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"state")
Print Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty(8,"text")

然后将其取消选中"Display a notification about every script error",再print一遍,可以得出imageindex这个属性前后不一样,选中的时候imageindex为0,未选中为1,则:
If Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty("Browsing;Display a notification about every script error","imageindex") = 1 Then
        Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").Select "Browsing;Display a notification about every script error"
End If

If Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").GetItemProperty("Browsing;Disable script debugging","imageindex") = 1 Then
        Browser("Browser").Dialog("Internet Options").WinTreeView("Settings:").Select "Browsing;Disable script debugging"
End If

可以达到目标。。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-3-4 11:09:55 | 只看该作者
你说的应该是IE中的高级选项目吧,如果是这样的话用VBS去操作IE选项中的对象我觉的不太容易,我觉的更简单的方式是通过修改注册表的方式来实现,毕竟VBS修改注册表是很方便的,比你去识别那些复选框和菜单什么的都简单;
IE的高级选项中,所有的选项都可以在注册表中找到其相关的位置,比如说你提到的两个:
显示每个脚本的错误通知:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\BROWSE\SCRIPT_ERROR_CACHE
禁用脚本调试(其他):HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\BROWSE\SCRIPT_ERROR_CACHE
禁用脚本调试(Internet explorer):HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\BROWSE\SCRIPT_ERROR_CACHE
只要知道了注册表位置,我们就可以用VBS操作注册表,修改相应项下的UncheckedValue键值,将no改成yes,它就启用了,相当于我们在IE的高级选项中勾选了那个复选框。
这样我们通过修改注册表就达到了修改IE设置的目的。这样做最大的好处就是不用再考虑测试对象无法找到或无法识别的问题了。而至于VBS如何修改注册表的问题就在网上搜一下吧,现在这样的文章在网上满天飞,应该很容易找到的。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 22:53 , Processed in 0.087785 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表