51Testing软件测试论坛

标题: 在代码中如何引入已经识别的对象? [打印本页]

作者: longsky21    时间: 2005-11-30 10:05
标题: 在代码中如何引入已经识别的对象?
在winrunner中可以通过引入map文件实现对GUI对象的复用,一下是用代码的方式引入的例子:
# Loading GUI Map for Target Builders Management
# First closing all previously loaded GUI files.
GUI_close_all();
#GUI_load(GUI_FILE_OP);
#GUI_load(GUI_FILE_SUB);
GUI_load(GUI_FILE);
# End Loading GUI Map
在QTP中通过object repository管理GUI对象,可以对象信息导出为.tsr文件,在setting-》Resource-》Object reporsitory type中设置可以引用这个文件,我的问题是能不能在QTP的编程模式下,也有像winrunner那样的语句,可以实现对GUI对象的复用!

如果不能,请指教!
作者: QA_BAY    时间: 2005-11-30 12:13
这个好像没有.只能导入一个就是在QTP的SETING 里面设置
不过你加入场景的时候,对象库已经导入了吧!
完全不用考虑这样的问题阿!
作者: longsky21    时间: 2005-11-30 14:29
为什么在QTP中管理GUI对象的文件是不可以编辑的,只能通过object repository?我觉得这样没有winrunner中灵活。这样的话,如果我编写一个通用的sub,在向sub中传入GUI参数的话,都要通过object repository查看一下GUI object的名称。
作者: 海龙    时间: 2005-11-30 16:27
利用Programmatic Descriptions可以实现
作者: longsky21    时间: 2005-11-30 17:01
请举个例子,写上两段代码吧!谢谢!
作者: 海龙    时间: 2005-11-30 17:20
参考这段代码,这段代码的对象存储库是空的,对象的识别都在脚本中完成


  1. SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE", "http://www.google.com"

  2. Set main = Description.Create()
  3. Set web = Description.Create()
  4. Set staffid = Description.Create()
  5. Set staffname = Description.Create()

  6. main("name").Value="Google"
  7. web("url").value="http://www.google.com/intl/zh-CN"

  8. staffid("name").Value = "q"
  9. staffid("type").Value = "text"
  10. staffid("html tag").Value = "INPUT"

  11. staffname("name").Value = "Google 搜索"
  12. staffname("type").Value = "submit"
  13. staffname("html tag").Value = "INPUT"

  14. Set  wb = Browser(main).Page(web)

  15. wb.WebEdit(staffid).Set "软件测试"
  16. wb.WebButton(staffname).Click


复制代码





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2