|
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
-
复制代码 |
|