51Testing软件测试论坛

标题: 用Browser("hwnd:="& ieHwnd).Close关闭浏览器时 出错。 [打印本页]

作者: zhangkun90    时间: 2013-1-23 13:38
标题: 用Browser("hwnd:="& ieHwnd).Close关闭浏览器时 出错。
如 附件所示, 用 dom 打开IE浏览器,用object.HWND 来获取  打开的IE浏览器的 hwnd 的值  但是 在最后一行代码中  执行错误 提示如附件所示 求解答

Set oie = CreateObject("InternetExplorer.Application")
oie.Visible= True
oie.Navigate  "www.baidu.com"
ieHwnd=oie.HWND
Browser("hwnd:="& ieHwnd).Close
作者: zhangkun90    时间: 2013-1-23 13:47
求解答~ 在线等奥
作者: xjwldlover    时间: 2013-1-23 13:59
oie.HWND <> browser().getRoProperty("HWND")
通过Browser("hwnd:="& oie.HWND) 是找不到对象的
作者: zhangkun90    时间: 2013-1-23 14:49
回复 3# xjwldlover


    可是我看书上是这么写的奥 , 我都是照敲下来的也不行55555
作者: xjwldlover    时间: 2013-1-23 15:01
回复 4# zhangkun90

经过无数前辈的实践证明,这地方有些问题,原因还不知道
作者: zhangkun90    时间: 2013-1-23 15:11
回复 5# xjwldlover


    啊 这样啊  我知道咧  书上写错了呗    是吧      用  getRoProperty(“hwnd”) 这个取得的 值 是可以的    那妥妥的  谢谢咯
作者: 黑羽祭    时间: 2013-1-24 09:13
回复 1# zhangkun90


    这里的确是书上写错了:使用Spy发现句柄与ieHwnd并不一样,所以最后一句执行的时候,的确找不到对象的。
还有271页上,oWebEdit("name") = "TestID.*"
应该写成 oWebEdit("name").value = "TestID.*"还有几个小地方也有点小问题。
LZ自行研究啦~
作者: zhangkun90    时间: 2013-1-24 09:32
回复 7# 黑羽祭


    谢谢啦 ,
作者: 泰然    时间: 2013-1-24 09:54
作者没有写错,可能是未特意说明测试环境,他用的是IE6。

  1. Set oie = CreateObject("InternetExplorer.Application")
  2. oie.Visible= True
  3. oie.Navigate  "www.baidu.com"
  4. 'Browser("hwnd:="&oie.hwnd).close
  5. 'wait 10
  6. print Browser(":=").GetROProperty("hwnd")&"/"&oie.hwnd
  7. print "==================="
  8. Set oObject = Description.Create()
  9. Set oObjList = Desktop.ChildObjects(oObject)
  10. For i = 0 to oObjList.count()-1
  11.         print oObjList(i).getRoProperty("hwnd")&"/"&oObjList(i).getRoProperty("nativeclass")&"/"&oObjList(i).getRoProperty("micclass")
  12.         print "==================="
  13. Next
复制代码



这段代码在我手头上有的2个浏览器版本IE6和IE8上运行的结果是不同的。

IE6上运行的结果:
  1. 459122/459122
  2. ===================
  3. 196664/Shell_TrayWnd/Window
  4. ===================
  5. 459278/WorkerW/WinObject
  6. ===================
  7. 524654/ReBarWindow32/WinObject
  8. ===================
  9. 1705224/ToolbarWindow32/WinToolbar
  10. ===================
  11. 655702/ComboBoxEx32/WinObject
  12. ===================
  13. 786920/ToolbarWindow32/WinToolbar
  14. ===================
  15. 459124/ComboBox/WinComboBox
  16. ===================
  17. 721520/Edit/WinEdit
  18. ===================
  19. 393736/ToolbarWindow32/WinToolbar
  20. ===================
  21. 459258/WorkerW/WinObject
  22. ===================
  23. 459284/ToolbarWindow32/WinToolbar
  24. ===================
  25. 1180892/msctls_statusbar32/WinStatusBar
  26. ===================
  27. 1836328/msctls_progress32/WinObject
  28. ===================
  29. 1901882/Shell DocObject View/WinObject
  30. ===================
  31. 459122/IEFrame/Browser
  32. ===================
  33. 328826/Mercury::Qtprn::PrintWindow/Window
  34. ===================
  35. 328588/Afx:00400000:8:00010003:00000000:002A03A3/Window
  36. ===================
  37. 65652/Progman/Window
  38. ===================
复制代码



IE8上运行的结果:
  1. 67734/198488
  2. ===================
  3. 196672/Shell_TrayWnd/Window
  4. ===================
  5. 263242/TXGuiFoundation/Window
  6. ===================
  7. 133184/BrowserFrameGripperClass/WinObject
  8. ===================
  9. 198656/WorkerW/WinObject
  10. ===================
  11. 133122/ReBarWindow32/WinObject
  12. ===================
  13. 133230/TravelBand/WinObject
  14. ===================
  15. 133226/ToolbarWindow32/WinToolbar
  16. ===================
  17. 133228/Address Band Root/WinObject
  18. ===================
  19. 133220/AddressDisplay Control/WinObject
  20. ===================
  21. 133218/Edit/WinEdit
  22. ===================
  23. 133222/ToolbarWindow32/WinToolbar
  24. ===================
  25. 133224/ToolbarWindow32/WinToolbar
  26. ===================
  27. 133210/UniversalSearchBand/WinObject
  28. ===================
  29. 133212/Search Control/WinObject
  30. ===================
  31. 133208/Edit/WinEdit
  32. ===================
  33. 133204/ToolbarWindow32/WinToolbar
  34. ===================
  35. 133200/ToolbarWindow32/WinToolbar
  36. ===================
  37. 67696/CommandBarClass/WinObject
  38. ===================
  39. 67698/ReBarWindow32/WinObject
  40. ===================
  41. 67718/CommandToolbarBand/WinObject
  42. ===================
  43. 67720/ToolbarWindow32/WinToolbar
  44. ===================
  45. 67714/TabBandClass/WinObject
  46. ===================
  47. 67716/DirectUIHWND/WinObject
  48. ===================
  49. 67710/FavBandClass/WinObject
  50. ===================
  51. 67712/ToolbarWindow32/WinToolbar
  52. ===================
  53. 67700/LinksBandClass/WinObject
  54. ===================
  55. 67708/ToolbarWindow32/WinToolbar
  56. ===================
  57. 67704/ToolbarWindow32/WinToolbar
  58. ===================
  59. 67730/Frame Tab/WinObject
  60. ===================
  61. 67740/InternetToolbarHost/WinObject
  62. ===================
  63. 67742/WorkerW/WinObject
  64. ===================
  65. 67744/ReBarWindow32/WinObject
  66. ===================
  67. 67748/ToolbarWindow32/WinToolbar
  68. ===================
  69. 67734/TabWindowClass/Browser
  70. ===================
  71. 67752/msctls_statusbar32/WinStatusBar
  72. ===================
  73. 67776/ToolbarWindow32/WinToolbar
  74. ===================
  75. 67774/ToolbarWindow32/WinToolbar
  76. ===================
  77. 67772/Shell DocObject View/WinObject
  78. ===================
  79. 67786/Internet Explorer_Server/Page
  80. ===================
  81. 198488/IEFrame/Window
  82. ===================
  83. 198878/Mercury::Qtprn::PrintWindow/Window
  84. ===================
  85. 459956/Afx:00400000:8:00010003:00000000:000205BD/Window
  86. ===================
  87. 853206/rctrl_renwnd32/Window
  88. ===================
  89. 262948/Chrome_WidgetWin_1/Window
  90. ===================
  91. 197240/#32770/Dialog
  92. ===================
  93. 65660/Progman/Window
  94. ===================
复制代码




看到差别没有?IE6上Browser(":=").GetROProperty("hwnd")和oie.hwnd的结果相同,但IE8上两者不同,原因是IE8是多标签的浏览器,Browser(":=")对象的hwnd,nativeclass和micclass分别是67734/TabWindowClass/Browser,而oie对象的hwnd,nativeclass和micclass分别是198488/IEFrame/Window,Browser(":=")只是ioe内部的一个tab。
作者: zhangkun90    时间: 2013-1-24 10:27
回复 9# 泰然


    这样啊  天呢,,,, 佩服奥  学习了 谢谢哈
作者: xjwldlover    时间: 2013-1-24 10:42
学习了
作者: 黑羽祭    时间: 2013-1-24 11:20
学习了~
作者: ld469    时间: 2013-1-29 13:20
回复 10# zhangkun90


    好文,分析透彻必须顶!!!
作者: qilaidi    时间: 2013-2-7 16:45
回复 9# 泰然

学习了!!谢谢分析!!
作者: ysm145    时间: 2013-4-1 13:55
用  getToProperty(“hwnd”)获取到值为什么是空
作者: My_duo    时间: 2013-5-4 12:32
今天也看到这一章了。学习了。




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