2013-03-27 36 views
0

在我的測試中,我想單擊類型WebArea的對象,該對象打開一個webelement彈出窗口,其中包含一些我需要測試的字段。如何從QTP點擊WebArea?

彈出窗口未打開後,我通過代碼單擊WebArea對象的問題。

我使用的代碼如下。

瀏覽器( 「WW」)。頁( 「評估」)。網絡區域( 「areaassessment」),點擊上面的線excuted後

什麼hapens。

+0

源代碼?對象標識配置? GUI組件屬性值?運行結果中的錯誤信息?網絡區域能否被成功識別?記錄器記錄什麼?錄製的代碼是否工作? – TheBlastOne 2013-03-27 09:21:41

+0

是的它的工作原理,webarea是一個像webElement一樣的web對象,它看起來像GUI中的圖像,但從qtp錄製它時,它將被記錄爲類型爲「webArea」的oobject – Manaysah 2013-03-27 09:27:21

+1

嗯所以它工作嗎?您顯示的代碼行(不起作用)和代碼QTP記錄(哪些有效)之間的區別是什麼? – TheBlastOne 2013-03-27 09:29:01

回答

2

查看WebArea的HTML並查看觸發彈出窗口的操作。通常它有類似onclick='showPopup();',但在其他情況下它是onmousedownonmouseup

如果是這樣,您必須相應地設置QTP。這裏有多條路可走,其中一條是看你如何配置高級網頁設置。轉至工具>選項>網絡>高級並查看運行設置。
將重播類型設置爲事件將通過事件(默認mousedown,mouseup然後mouseclick)或鼠標(您將看到鼠標指針在此模式下移動,QTP將通過發送WM_ *消息重播Windows api移動到正確的屏幕位置並觸發點擊)。
雖然它重播速度更快,但如果選中Run only click,最好取消選中此項以觸發所有事件/消息。

事件也可以通過FireEvent法進行燒結:

Browser("WW").page("assessment").WebArea("areaassessment").FireEvent("onclick") 

或通過對象的本地方法:

call Browser("WW").page("assessment").WebArea("areaassessment").Object.click() 
call Browser("WW").page("assessment").WebArea("areaassessment").Object.FireEvent("onclick") 
+0

感謝AutomatedChaos,解決了這個問題。 – Manaysah 2013-04-03 15:26:03

0

由於@AutomateChaos說有可能是QTP沒有模擬事件,解決這個問題的一種方法就是按照@AutomateChaos的建議和模擬所需的事件。更簡單的方法是更改​​爲設備重播(如我所述herehere)。