51Testing软件测试论坛

标题: qtp11录制web下拉框为webEdit,使用set方法后查询条件无效 [打印本页]

作者: jstm_mm    时间: 2012-9-13 15:49
标题: qtp11录制web下拉框为webEdit,使用set方法后查询条件无效
查询条件中有个条件为下拉列表。页面控件代码如下:
  1. <input id="Text_custLevel" typeId="text" dropDown="dropDown_peCustLvl">
复制代码

控件数据来源代码如下:

  1. <script language="javascript">
  2. var Dataset_Save = new Dataset("Dataset_Save");Dataset_Save.init('{id:"Dataset_Save",pageCount:0,pageNo:1,pageSize:10,totalSize:0,fields:[{name:"custLevel",label:"^5ba2^6237^7b49^7ea7",dataType:"string",dropDown:"dropDown_peCustLvl"},

  3. {name:"custMgr",label:"^5ba2^6237^7ecf^7406",dataType:"string"},{name:"custNo",label:"^5ba2^6237^53f7",dataType:"string"},{name:"custSource",label:"^5ba2^6237^6765^6e90",dataType:"string",dropDown:"dropDown_custSource"}]}');
  4. Dataset_Save.updateTotalRecords=true;Dataset_Save.allowMultiSelect=true;</script>
复制代码

使用qtp11录制时识别为WebElement,使用spy识别为WebEdit,并添加入对象库。然后使用set方法设置值,qtp代码如下:

  1. Browser(bName).Page(pName).Frame("TabSet_Apps_1D99301DD35100017E").WebEdit("html id:=Text_custLevel").set("高级客户")
  2. Browser(bName).Page(pName).Frame("TabSet_Apps_1D99301DD35100017E").WebButton("html id:=Button_Query").Click
复制代码

使用这个方法查询时,这个下拉条件不生效。查出来的数据包括等级不为“高级客户”的数据。
请大家赐教,才学qtp。先谢过了。
作者: jstm_mm    时间: 2012-9-13 16:02
自己顶。。
作者: xjwldlover    时间: 2012-9-13 16:11
你这个情况我搞不定,但是很感兴趣。见过一种方法,看是否对你有帮助,如有错误,请指正~

我的理解是这样,你的操作对象和方法可能都放在 Dataset_Save 这个对象了,你动态给网页添加一个html节点,让节点的docment或者其他属性 = Dataset_Save。返回节点的docment,这样你可以查看对象Dataset_Save的属性和方法,里面或许有set方法
作者: jstm_mm    时间: 2012-9-13 16:26
果然是你说的那样也。我试试去,但愿成功。。
作者: jstm_mm    时间: 2012-9-13 16:54
回复 5# louqqson008

1、10和11我都用过。识别该控件都是webedit(spy识别)
2、这个下拉框不是标准的下拉框,所以不是weblist。
作者: 赵佳乐SMILE    时间: 2013-1-7 16:35
我现在也是这个情况 明明看见set进去了 保存的时候 就没保存上 什么情况
作者: error2    时间: 2013-1-7 19:32
下拉框能用select吗?
作者: 赵佳乐SMILE    时间: 2013-1-8 09:00
回复 7# error2


    不能哦输入的时候会识别为webedit
选择的时候识别的WebElement


这个字段其实既可以输入 又可以选择


但是用set 不好使,可以看到跑的过程中是有值的 ,但是保存后的结果 是没有的

[attach]83116[/attach]
作者: 赵佳乐SMILE    时间: 2013-1-8 12:02
本帖最后由 赵佳乐SMILE 于 2013-1-8 14:28 编辑

模拟click 已经用以下代码实现了 ok了 就差模拟输入了
text=MyExcelSheet.cells(i,3)
Browser("").Page("").Frame("").WebElement("").SetTOProperty  "innertext",text

Browser("").Page("").Frame("").WebElement("").Click
作者: 泰然    时间: 2013-1-8 17:10
这是很常见的Ajax应用。看似是个下拉框,其实包括了1个空白的下拉框,1个文本框和1个div。
那个下拉框唯一的作用就是当点击在下拉框上时,显示和隐藏那个div;当div显示出来并被点上某行时,该行内容显示在文本框中,其效果好像是在下拉框中选择了一行。

如果这个div中的内容是动态的,所要做出的选择也是动态的,那只能用getelement系列函数来获取,然后childnodes进入。
作者: 赵佳乐SMILE    时间: 2013-1-8 17:56
回复 10# 泰然


    求教输入怎么模拟

就是某条数据存在时 可已选择 不存在时 允许添加

用webedit set是不好使的
作者: 泰然    时间: 2013-1-9 13:45
能把对象库给我看一下吗?
基本写法就是
对象.object.innertext=text
但看不到对象库,说不清该写哪个对象。
作者: 赵佳乐SMILE    时间: 2013-1-10 17:04
回复 12# 泰然


用sendkey 回车解决了 嘿嘿

实现了就好 方法很多种 呵呵

你讲的这个好深奥 代码样式我几乎看不懂
作者: 赵佳乐SMILE    时间: 2013-12-24 16:24
回复 9# 赵佳乐SMILE


    没想到 年初会的东西 年底已经不会了 又翻出 是自己答案的 好吧 还好解决问题了
作者: xiaoshi_2011    时间: 2015-8-18 09:59
赵佳乐SMILE 发表于 2013-12-24 16:24
回复 9# 赵佳乐SMILE

我也是遇到这样的问题,我用的是QTP11.0,浏览器是IE9,录制的时候下拉框无法录制,导致回放失败,请问你是怎么解决的?请赐教
作者: 赵佳乐SMILE    时间: 2015-8-18 12:37
比较多 你看看吧
http://user.qzone.qq.com/305132437/blog/1357462841




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