0

我是 QTP 的新手。

我需要使用 QTP 测试 Web 应用程序。出于学习目的,我使用了 Gmail 登录页面,使用以下脚本

Systemutil.Run "http://www.gmail.com"
Browser("Title:=Gmail.*").Page("title:=Gmail.*").WebEdit("name:=Email").Set "xxxxxx"
Browser("Title:=Gmail.*").Page("title:=Gmail.*").WebEdit("name:=Passwd").Set "yyyyyy"
Browser("Title:=Gmail.*").Page("title:=Gmail.*").WebButton("name:=Sign in").click

在 Gmail 页面打开后,最后什么也没发生,也出现了一个错误

Cannot find the "[ WebEdit ]" object's parent "[ Browser ]" (class Browser). Verify that parent properties match an object currently displayed in your application.

Line (2): "Browser("Title:=Gmail.*").Page("title:=Gmail.*").WebEdit("name:=Email").Set "xxxxxx"". 

Tip: If the objects in your application have changed, the Maintenance Run Mode can 
help you identify and update your steps and/or the objects in your repository.
4

4 回答 4

1

还要检查您的浏览器是否受您的 QTP 版本支持!

于 2013-06-28T08:05:47.967 回答
1

使用这种结构更专业:

对于您制作的每个模块:

  • 控制动作调用TestCase的函数库
  • TestCase 的函数库:调用函数(步骤)库
  • 库中的单独数据库操作
  • 使用 ObjectRepository 结构 Browser/Page/Objects

享受。

于 2013-07-30T00:12:22.647 回答
0

有错误消息告诉您 QTP 无法识别您选择的“标题”标识符指定的浏览器。

假设在 GMail 时浏览器的识别属性是正确的,最可能的原因是在您尝试执行 .Set 之前页面尚未完成加载(因此浏览器标题不会是“Gmail:...”然而)。

以这种方式识别浏览器不是很灵活。尝试这样的事情来代替浏览器识别:

Browser("application version:=internet explorer 8") 'though I don't really recommend this way of identifying either.

使用与页面无关的方式来识别浏览器,您可以在打开浏览器后添加 Sync 语句:

Systemutil.Run "http://www.gmail.com"
Browser("application version:=internet explorer 8").Sync
Browser("application version:=internet explorer 8").Page("title:=Gmail.*").WebEdit("name:=Email").Set "xxxxxx" 'If you want to use "title" as an identifier here it'll probably work fine after the sync.

检查它是否真的不是同步问题的其他一些事情:

  • 您使用的是哪个浏览器?IE?转到工具 > 管理加载项并检查 HP 的“BHOManager 类”是否存在并启用。
  • QTP 的 Web 插件是否已加载并与您的测试相关联?默认情况下,当 QTP 加载时会提示您选择加载项,在您的测试中,您可以转到文件 > 设置 > 属性并选中“关联加载项”。
于 2013-06-07T09:05:02.467 回答
0

您使用的描述看起来不错(我试过了,它对我有用)。我建议尝试使用Object Spy工具来确认 QTP 已正确注入浏览器,并且您的描述与现有浏览器的描述匹配。

于 2013-06-09T07:48:10.767 回答