QTP/UFT能捕捉到对象但是点击不了,录制点击也没反应
有時候這些問題的搞到人抓狂,還好解決了。希望這些思路能幫到需要幫助的童鞋:
問題:系統頁面中有一個復選框,使用對象偵測器可以捕捉到此對象,但是執行腳本的時候卻不能點擊到,而且錄制點擊該復選框時,并不能生成腳本語句,而是毫無反應。
下面放出該復選框:
我們再來看看使用偵測器捕捉到的對象:
注:xpath這個屬性是博主后面自己加的,不是偵測到的,忽略即可。
腳本的語句如下:
Browser("Browser").Page("測試系統").Frame("Frame").WebElement("WebElement").Click()問題分析: 可以看到改對象的類是WebElement,并不是checkbox類型。所以需要使用click的方法,不能使用set的方法。
思路一、 可以注意到索引的值是21,所以又可能是索引的原因,修改索引的值為0或者1,執行腳本語句。失敗,并不能勾選到。
出現這一問題懷疑就是定位不到元素的位置或者元素的屬性一直都是變化著的。
思路二、搗鼓了一陣子之后,只能轉戰其他的辦法,這時搜索到可以使用xpath來定位元素。這時候可以搗鼓成:
1、直接將xpath的路徑寫入到腳本語句中,如:
2、對偵測的對象添加一個xpath屬性,將值丟進去。然后執行該對象。
然而,結果都是不行的。
思路三:重點來了,經過大佬的點撥,有了一些靈感。出現這種問題,需要看看該條記錄是不是使用框架生成的。博主就是符合這種情況。
怎么解決?
我們要找到是那種框架,如easyui或者是extjs。然后根據該框架的api來生成一個JS,使用QTP執行該JS就可以選中了。代碼如下:
這里問題就解決了。
思路四:這個思路是網上搜的,沒有實踐過,可以拿來參考參考。
原理就是安裝對應的框架的插件,然后再捕捉改對象,這時候的對象就應該可以執行了。具體的方法可以點擊這個鏈接:
http://blog.csdn.net/kernzhang8/article/details/5705385
好了,希望這些思路能夠幫到你!
<—————————2017-12-28————————————–>
補一下有關EXTJS方面另外一部分的問題:
從前文可以看出如果前面又復選框的話,我們可以使用Ext.getCmp(""grid"").getSelectionModel() 這個方法,但有時候列表的內容中沒有復選框,只有純粹的數據,所以這時候還使用復選框的那個方法是獲取不到所要的行的。因此,需要使用:
再增加一些循環,即可實現對列表內容的選取。
searchKeyword_js = """"& searchKeyword &"""" Browser("Browser").Page("測試系統").Frame("主界面").RunScript("var store = Ext.getCmp(""grid"").getStore();for(var i=0;i<store.data.length;i++){var record = store.getAt(i);if (record.data.templateNum=="&searchKeyword_js&") {uf_Edit(record.data.id ,"""","""",false);break;}}")總結
以上是生活随笔為你收集整理的QTP/UFT能捕捉到对象但是点击不了,录制点击也没反应的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 架构师更多的是和人打交道,说说我见到和听
- 下一篇: html5手机页面 点击事件