lyscser 发表于 2011-8-8 17:03:03

如果不是要 测试这个空间本身的话就用:Browser("Browsername").Page("Pagename").Frame("meizzCalendarIframe").WebEdit("出生日期").Object.Value = "2032-01-01"就行了
如果要是特意测试这个控件,建议你手工测试,不要使用QTP,根本就不值得

crush 发表于 2011-8-9 09:41:20

回复 21# lyscser

感谢楼上的几位再次声明这不是webedit 不能用.object.value
我也不是测试这个东西我是录制制造数据的脚本 因为这个页面表单太多了 还需要参数化

rogerliu0303 发表于 2011-8-13 14:57:49

这因该是个ActiveX吧

rogerliu0303 发表于 2011-8-13 19:04:03

calendar需要点击webedit才会弹出来吧。而你的代码中并没有点击edit的操作。所有回放时,系统找不到calendar,就更找不到winlist。
其实最方便的方法是winedit.set,如果edit是只读的,可以用.object.readonly=false修改,然后写入值。
如果非要点击来获取日期,也可以,但是很麻烦。需要通过DOM获取很多页面属性,来控制控件。
下面是我写的携程网的calendar通过点击获取日期的部分代码,你可以参考一下。

Function SplitStr(str)
arr_tmp=split(str," ")
arr=split(arr_tmp(1),"月")
SplitStr=arr(0)
End Function
strTargetDate="2011-10-21"
arrDate=split(strTargetDate,"-")
strMonth=arrDate(1)
strDay=arrDate(2)
Set desc1=Description.Create
Set desc2=Description.Create
desc1("micclass").value="WebElement"
desc1("html id").value="calendar_title1"
desc1("html tag").value="SPAN"
desc2("micclass").value="WebElement"
desc2("html id").value="calendar_title2"
desc2("html tag").value="SPAN"
set titleCollection1=browser("携程旅行网: 酒店预订, 机票预订, 旅游度假,").Page("携程旅行网: 酒店预订, 机票预订, 旅游度假,").ChildObjects(desc1)
set titleCollection2=browser("携程旅行网: 酒店预订, 机票预订, 旅游度假,").Page("携程旅行网: 酒店预订, 机票预订, 旅游度假,").ChildObjects(desc2)
Set title1=titleCollection1(0)
Set title2=titleCollection2(0)
strTitle1=title1.GetROproperty("innertext")
strTitle2=title2.GetROproperty("innertext")
title_month1=SplitStr(strTitle1)
title_month2=SplitStr(strTitle2)
If cint(strMonth)<cint(title_month1) Then
cnt=title_month1-strMonth
For i=0 to cnt -1
browser("携程旅行网: 酒店预订, 机票预订, 旅游度假,").Page("携程旅行网: 酒店预订, 机票预订, 旅游度假,").WebEdit("DDatePeriod1").Click
browser("携程旅行网: 酒店预订, 机票预订, 旅游度假,").Page("携程旅行网: 酒店预订, 机票预订, 旅游度假,").WebElement("prevMonBtn").Click
Next
End If
If cint(strMonth)>cint(title_month2) Then
cnt=strMonth-title_month2
For i=0 to cnt -1
browser("携程旅行网: 酒店预订, 机票预订, 旅游度假,").Page("携程旅行网: 酒店预订, 机票预订, 旅游度假,").WebEdit("DDatePeriod1").Click
browser("携程旅行网: 酒店预订, 机票预订, 旅游度假,").Page("携程旅行网: 酒店预订, 机票预订, 旅游度假,").WebElement("nextMonBtn").Click
Next
End If


harui 发表于 2011-8-15 09:25:42

北漂测试群:141528110

samson_wsx 发表于 2011-8-15 12:01:55

用描述性语言来实现很简单,首先点击输入框,让它弹出日期控件,再对日期控件做描述性编程就搞定了.

fjfhsn 发表于 2011-8-15 14:35:59

这问题我也遇到过,只能在点击之后,选择之前加个wait等几秒,否则回放时因为太快,导到没弹出日期选择框,就执行下一步,所以报错。

vickywang_no1 发表于 2011-8-15 16:46:45

这种日期输入框,还是不要操作控件的好,直接针对那个日期输入框编写脚本。方法:
1)获取那个日期输入框对象(应该是一个WebEdit对象吧。如果录制时没有录制到该对象,可以在对象仓库中通过“添加”的方式手动获取)
2)一个步骤就可以解决:
XXX.WebEdit("XXX").Object.value="2011-07-09 10:08"
当然,那个日期值的格式要视具体情况而定,有的只需要输入日期值“2011-07-09”。

Ganve_001 发表于 2011-8-15 17:19:54

实在不行,就用要输入的年份与当前日期的年份比较,差是多少,就循环点几下那个<< 或者>>,月份也一样。日期用WEBTABLE 点。

binllyyu 发表于 2011-8-17 13:09:15

12楼的方法可以。我平常就是这么做的,不要按照年、月、日的去选,直接在日前编辑框 输入一个合法的日期。比喻2011-8-17,Browser("...").Page("...").WebEdit("...").Set “2011-8-17”
页: 1 [2]
查看完整版本: 求助QTP回放中WebList输入值的问题