ygzzfyhhmh 发表于 2012-9-20 15:30:45

QTP录制不到日历控件问题

本帖最后由 ygzzfyhhmh 于 2012-11-20 17:05 编辑

录制日历控件时为什么录制不下来脚本。

日期是选择输入的,不能手动输入。


明天不一样 发表于 2012-9-20 15:48:37

不知道我的想法是否正确,你这个对象的name可以用正则表达式来写吗

ygzzfyhhmh 发表于 2012-9-20 15:55:25

应该是不可以的,每次录制的都是没有规则的,怎么写?

louqqson008 发表于 2012-9-20 16:49:55

我这边的项目中这个日期对象(好像用JS做的)都不能识别,你通过什么方法让他识别的,还是一开始就识别了

xjwldlover 发表于 2012-9-20 17:13:26

哎 你需要把spy的信息截图和网页的源文件发出来,而不是对象库信息。信息量差别太大了

ygzzfyhhmh 发表于 2012-9-20 17:21:10

一开始就识别了

kudianxin 发表于 2012-9-21 08:48:27

有个临时解决办法。通过低级录制模式,记录坐标就ok了。
你录制的对象属性中的name指的是时间空间的名字还是日期的名字,先确认下。

ygzzfyhhmh 发表于 2012-9-21 09:32:05

我把spy的信息截图和网页的源文件发出来了,麻烦各位再帮看一下!

ygzzfyhhmh 发表于 2012-9-21 09:32:48

name是日期的名字

xjwldlover 发表于 2012-9-21 11:15:43

本帖最后由 xjwldlover 于 2012-9-21 11:16 编辑

LZ可以使用描述性编程使用下列属性捕捉日期控件的webEdit
micClass = WebEdit
html tag = INPUT
type=TEXT
html id = .*startday
index = 0 或者1 看你是取那个输入框而定。
取这些属性,以及使用index的依据是你原代码中开发人员就是这么查找的,你和他使用一样的方法,找到的结果必然一致。附源码摘录


function getControl()
{
var input = document.getElementsByTagName("input");
var index = 0;
for(var i=0;i<input.length;i++)
{
if(input.type.toLowerCase() == "text")
{
   // 获得日期
   if(input.id.substring(input.id.length , input.id.length - "startday".length) == "startday")
   {
    dateText = input;
    index ++;
   }
}
}


希望对你有帮助,如有错误,请各位指正~

louqqson008 发表于 2012-9-21 13:47:35

帮顶,LZ如果可以了,可否发下代码

fengdishudu444 发表于 2012-9-21 16:22:50

spy一下 看下有没有唯一固定属性   描述性编程试下

csj 发表于 2012-9-28 16:28:18

QTP11有一个功能就是通过相邻的对象找另外 的对象,你可以试一下。应该可以,因为你这个页面上的 “时间”这个label和后面那个图片应该都是可以唯一识别的

fengdishudu444 发表于 2012-9-29 10:56:40

回复 13# csj


    可否对此功能简单描述下? 谢谢

ygzzfyhhmh 发表于 2012-11-20 16:28:36

本帖最后由 ygzzfyhhmh 于 2012-11-20 16:48 编辑

用描述性编程解决了。
具体代码如下:
Mydate=day(date)
name="meizzDay"
MyName=name & Mydate
Browser("XXXX").Page("XXXX").WebElement("html tag:=TD","html id:="&MyName).Click
页: [1]
查看完整版本: QTP录制不到日历控件问题