jstm_mm 发表于 2012-9-13 15:49:54

qtp11录制web下拉框为webEdit,使用set方法后查询条件无效

查询条件中有个条件为下拉列表。页面控件代码如下:
<input id="Text_custLevel" typeId="text" dropDown="dropDown_peCustLvl">
控件数据来源代码如下:

<script language="javascript">
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"},

{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"}]}');
Dataset_Save.updateTotalRecords=true;Dataset_Save.allowMultiSelect=true;</script>

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

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

使用这个方法查询时,这个下拉条件不生效。查出来的数据包括等级不为“高级客户”的数据。
请大家赐教,才学qtp。先谢过了。

jstm_mm 发表于 2012-9-13 16:02:26

自己顶。。

xjwldlover 发表于 2012-9-13 16:11:51

你这个情况我搞不定,但是很感兴趣。见过一种方法,看是否对你有帮助,如有错误,请指正~

我的理解是这样,你的操作对象和方法可能都放在 Dataset_Save 这个对象了,你动态给网页添加一个html节点,让节点的docment或者其他属性 = Dataset_Save。返回节点的docment,这样你可以查看对象Dataset_Save的属性和方法,里面或许有set方法

jstm_mm 发表于 2012-9-13 16:26:15

果然是你说的那样也。我试试去,但愿成功。。

jstm_mm 发表于 2012-9-13 16:54:43

回复 5# louqqson008

1、10和11我都用过。识别该控件都是webedit(spy识别)
2、这个下拉框不是标准的下拉框,所以不是weblist。

赵佳乐SMILE 发表于 2013-1-7 16:35:34

我现在也是这个情况 明明看见set进去了 保存的时候 就没保存上 什么情况

error2 发表于 2013-1-7 19:32:03

下拉框能用select吗?

赵佳乐SMILE 发表于 2013-1-8 09:00:27

回复 7# error2


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


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


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

赵佳乐SMILE 发表于 2013-1-8 12:02:58

本帖最后由 赵佳乐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:29

这是很常见的Ajax应用。看似是个下拉框,其实包括了1个空白的下拉框,1个文本框和1个div。
那个下拉框唯一的作用就是当点击在下拉框上时,显示和隐藏那个div;当div显示出来并被点上某行时,该行内容显示在文本框中,其效果好像是在下拉框中选择了一行。

如果这个div中的内容是动态的,所要做出的选择也是动态的,那只能用getelement系列函数来获取,然后childnodes进入。

赵佳乐SMILE 发表于 2013-1-8 17:56:12

回复 10# 泰然


    求教输入怎么模拟

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

用webedit set是不好使的

泰然 发表于 2013-1-9 13:45:03

能把对象库给我看一下吗?
基本写法就是
对象.object.innertext=text
但看不到对象库,说不清该写哪个对象。

赵佳乐SMILE 发表于 2013-1-10 17:04:44

回复 12# 泰然


用sendkey 回车解决了 嘿嘿

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

你讲的这个好深奥 代码样式我几乎看不懂

赵佳乐SMILE 发表于 2013-12-24 16:24:06

回复 9# 赵佳乐SMILE


    没想到 年初会的东西 年底已经不会了 又翻出 是自己答案的 好吧 还好解决问题了

xiaoshi_2011 发表于 2015-8-18 09:59:42

赵佳乐SMILE 发表于 2013-12-24 16:24
回复 9# 赵佳乐SMILE




我也是遇到这样的问题,我用的是QTP11.0,浏览器是IE9,录制的时候下拉框无法录制,导致回放失败,请问你是怎么解决的?请赐教

赵佳乐SMILE 发表于 2015-8-18 12:37:12

比较多 你看看吧
http://user.qzone.qq.com/305132437/blog/1357462841
页: [1]
查看完整版本: qtp11录制web下拉框为webEdit,使用set方法后查询条件无效