QTP的那些事--ajax中的autocomplete的最终几种解决方案

简介:

1,最近测试中使用到了ajax的一个webedit自动填充的案例,想了好久,终于想到了一个解决的方案:

Set deviceReplay = CreateObject ("Mercury.DeviceReplay")

Browser("xx").Page("xx").WebEdit("xx").Object.focus

deviceReplay.SendString(str)

wait(10)

deviceReplay.PressKey(28)

 

 

 

2,第二种方法采用的是事件响应然后再敲击鼠标键盘,本人自己操作过,这个方法应该是比较好的,有一个论坛讨论了这个问题:

地址:http://www.advancedqtp.com/forums/index.php?action=printpage;topic=5594.0

代码设计如下:

dim str="s"

Set WshShell = CreateObject("WScript.Shell")
Browser("testapp").Page("testapp").Frame("mIfm-3").WebEdit("dispatchOpName").Set str
Browser("testapp").Page("testapp").Frame("mIfm-3").WebEdit("dispatchOpName").FireEvent "onclick" 'This simulate the mouse click event after value is set 
WshShell.SendKeys "{Down}" 'This displays the drop down list box
'wait 2
WshShell.SendKeys "{Down}" 'This hover over the first element in the list
'wait 2
WshShell.SendKeys "~" 'This selects the hovered element

3,采用的另外的方式;

3.1首先设置获得键盘的操作步骤,

Setting.WebPackage("ReplayType") = 2 'enable mouse operations

Browser(X).Page(Y).WebEdit(Z).Set "ann"
Setting.WebPackage("ReplayType") = 1 'enable keyboard operations
WshShell.SendKeys "{DOWN}" 'To hit the down arrow n times you can use "{DOWN n}" 'To Select element WshShell.SendKeys "~" 
4,其他的方式,暂时不写了。不过以上的已经可以解决大家所有的遇到的ajax的autocomplete的问题了。

5,如果以上的方案还不能够解决你的问题,可以尝试一下的一种方案,原始网页地址:

http://forums.testleaf.com/showthread.php?tid=633&pid=1324&language=settings

 

整理如下:

方法一:GetSuggestedOptionsArr(EditObj, PageObj, PartialText)

方法二:VerifyOptionsNumber(EditObj,PageObj, PartialText, ExpectedNumber)

方法三:IsInSuggestions(EditObj,PageObj, PartialText, SuggestedText)

方法四:SelectSuggestedOption(EditObj,PageObj, PartialText, SuggestedText)

方法五:TypeStringFromFirstToLast(EditObj, sText)

The GetSuggestedOptionsArr function simulates the "Auto Complete" behavior by setting a partial value to the search field and triggering the suggestion values retrieval by firing the "onkeyup" event. The Page.ChildObjects method is then used to get a collection of the returned values using a predefined description that uniquely identifies them:
set desc = Description.Create
desc("class").value = "cAutoComplete"
desc("micclass").value = "WebElement"
desc("html tag").value = "SPAN"
After the description is defined, it is used to capture a collection of the suggested possible values:
Set options = Browser("BrowserName").Page("PageName").ChildObjects (desc)
Example:
Create a reference to the Page object that contains the search edit field.
Set PageObj = Browser("Google").Page("Google")
Get an array with the possible search values
Dict = Browser("Google").Page("Google").WebEdit("q").GetSuggestedOptionsArr(PageObj,"a")
msgbox "The array contains " & UBound(Dict) & " suggested search strings."
Verify 10 suggestions were presented
result= Browser("Google").Page("Google").WebEdit("q").VerifyOptionsNumber(PageObj,"a",10)
msgbox "There are 10 suggested search strings: " & result
Check that "aol" is one of the returned suggested search values
bIsInSugg = Browser("Google").Page("Google").WebEdit("q").IsInSuggestions(PageObj,"a", "aol ")
msgbox "The value aol is in the suggested search strings: " & bIsInSugg
Get a vbNewLine delimited string of the suggested search options
txt = Browser("Google").Page("Google").WebEdit("q").GetSuggestedOptions(PageObj,"ca")
MsgBox txt
Enter the ab string character by character
Browser("Google").Page("Google").WebEdit("q").TypeStringFromFirstToLast "ab"
wait 2

 

6,完全靠模拟键盘的操作的方式:

地址:http://www.slideshare.net/Sampetruda/514785qtpoptionsetupdoc

7。最精华就是下面的这个地址,里面有所有的有关DOM的使用方法,及其常用的一些函数,可以说,这个是大师的经验代码啊。



本文转自hcy's workbench博客园博客,原文链接:http://www.cnblogs.com/alterhu/archive/2011/12/29/2306781.html ,如需转载请自行联系原作者。
目录
相关文章
|
9月前
|
JSON 前端开发 安全
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
183 0
|
9月前
|
JSON 前端开发 JavaScript
layui上传文件弹出请求上传接口出现异常的终极解决方案(v2.68版本、ajax底层逻辑修改、debug快速定位)
layui上传文件弹出请求上传接口出现异常的终极解决方案(v2.68版本、ajax底层逻辑修改、debug快速定位)
491 0
|
9月前
|
前端开发 API PHP
ajax获取API数据出现400或415的解决方案
ajax获取API数据出现400或415的解决方案
81 0
|
9月前
|
前端开发 API PHP
漏刻有时开放平台数据接口php允许ajax跨域的解决方案
漏刻有时开放平台数据接口php允许ajax跨域的解决方案
35 0
|
9月前
|
前端开发 JavaScript
javascript使用ajax传递token参数的一个解决方案
javascript使用ajax传递token参数的一个解决方案
60 0
|
9月前
|
前端开发
大数据量学习:ajax获取数据后将数组重新分组后分批定时渲染的解决方案
大数据量学习:ajax获取数据后将数组重新分组后分批定时渲染的解决方案
65 0
|
9月前
|
前端开发 数据可视化 JavaScript
ajax刷新php后台实现定时任务的执行解决方案
ajax刷新php后台实现定时任务的执行解决方案
71 0
|
9月前
|
前端开发 JavaScript API
ajax异步加载获取数据与Echarts渲染图表的两种解决方案
ajax异步加载获取数据与Echarts渲染图表的两种解决方案
99 0
|
9月前
|
前端开发 PHP
php解决ajax使用post请求时提交的数据过多而导致et::ERR_CONNECTION_RESET的解决方案
php解决ajax使用post请求时提交的数据过多而导致et::ERR_CONNECTION_RESET的解决方案
130 0
|
9月前
|
前端开发
ajax返回无数据时防止控制台报错的解决方案
ajax返回无数据时防止控制台报错的解决方案
53 0