qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          QTP處理各類鼠標事件fireEvent

          在做web測試時,頁面上的HTML標簽會包含各類事件:單擊(onclick)、雙擊(onDblClick)、光標聚集(OnBlur)、onchange、onfocus、onmousedown、onmouseup、onmouseover、onmouseout、onsubmit、onreset、onpropertychange等。
            在用QTP錄制時,有可能會有一些事件錄制不到。這時候你可以進行一些設置,QTP/tools/Web Event Recording Configuration/custom settings/event/add就可以添加你想要錄制下來的事件啦。
            當然,這篇文章的主題并不是上述這些。
            先描述一下我的問題,項目中碰到一個列表控件,是采用ligerUI做的,雙擊列表中的一行,會讀到這一行的內容,然后把數據賦給頁面的其他標簽,還包括一些隱藏域。
            首先,我在錄制的時候發現雙擊事件錄不到(上述Web Event Recording Configuration已經設置好),于是采用低級別錄制,雙擊事件順利錄制到。
            接著,在回放的時候,發現雙擊事件失效,并沒有如預期中的,我雙擊一個項,然后頁面別的元素獲取到他的值。
            我的第一個操作是,因為知道整個頁面實現的邏輯是,獲取到每一項的唯一標志符后,把這個值賦給頁面的一個隱藏域,然后后續的工作就都可以順利進行了。因為這里涉及到隱藏域的問題,我們知道QTP采用的是對象識別的模式,意識就是,他只能識別他看的到的,在表面上顯示出來的對象。這里采用DOM對象的方法,DOM是直接從源代碼(HTML頁面)獲取對象。所以頁面上的各種隱藏域,各種可以通過標簽、ID、屬性等獲取到的對象就可以很順利的在QTP中讀取到。DOM對象也很簡單,只需要在你想要識別的對象的父對象后面加上“ .Object ”,然后就可以通過getElementById("id")、document.getElementById("id")、getElementsByName("html tag")等各種js獲取對象的方法來對頁面為所欲為了。
            比如這里,我的實現代碼就變成了:
          1 set obj =  Browser("Browser").Page("Page").Object.getElementById("verifyID")
          2 obj.value = "0101002699"
            這個只是很膚淺的解決了問題,但頁面上該顯示正確值的地方的值還是空的。那就是說還得弄一個能真正解決該問題的方法。
            現在我們就引入了fireevent方法。
            fireevent是JS中的一個方法,以下摘自MSDN的解釋
            fireevent執行的效果就是“等同于”在目標元素上進行了相關操作。可以模擬各種包括單擊在內的,文章一開頭就列出來的各種操作。
            那我上面遇到的問題的解決辦法就是:
          Set list =  Browser("Browser").Page("Page").WebElement("list").Object
          list.document.getElementById("maingrid4|2|r1001").fireevent("ondblclick")
            這樣,我想要的雙擊事件的回放問題,就順利解決啦。

          posted on 2014-05-04 13:00 順其自然EVO 閱讀(2524) 評論(0)  編輯  收藏 所屬分類: qtp

          <2014年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 门头沟区| 贵州省| 彩票| 长岛县| 抚宁县| 房产| 涿州市| 锡林郭勒盟| 黄浦区| 彭泽县| 临安市| 辽宁省| 买车| 漯河市| 林甸县| 平远县| 五寨县| 河池市| 屯留县| 松滋市| 延安市| 溧水县| 平阴县| 谢通门县| 交城县| 合川市| 澄江县| 温宿县| 元朗区| 无为县| 株洲县| 万山特区| 汉中市| 康乐县| 建始县| 仙游县| 屯留县| 元谋县| 台州市| 大城县| 民勤县|