操作步骤:点击一个文本框,触发日历控件弹出,选择时间日期,自动输入到文本框中。录完的脚本里根本没有记录。意味着QTP根本没有识别这个控件。
先百度了好久,看了一些论坛上的大神遇到这种问题的解决办法。
其中有告诉直接用Object.Value=""的,我试了一下,没成功。
Browser("xxxxxx").Page("xxxxxx").Frame("text_2").WebEdit("birthday").Object.Value="2009-12-11"
&
Browser("xxxxxx").Page("xxxxxx").Frame("text_2").WebEdit("birthday").disabled=false
Browser("xxxxxx").Page("xxxxxx").Frame("text_2").WebEdit("birthday").Set"2009-12-11"
试了几种方法都不行。之后得高人指点,首先要在QTP的Options里的web里的Active X Check勾选上。
之后再录了一遍,不过我边录边看QTP操作,我直接点选日期没一点反应,倒是我点日历控件下面的今天按钮,倒是QTP给录上了
但是我之后回放的过程中,还是在这里卡壳了,回放并没有点击出控件,而是在文本框这停住了。
因为这是一个点击事件。需要点击后激活控件。之前是做的焦点,我试着把程序里"onfocus”改为"onclick"
又回放一遍,哈哈成功了!
至此,这个录制日历控件的工作暂告一段落,唯一留点小遗憾的是日期那个点选不起作用。留待以后解决,有高手有这方面经验的也请指点下。
-------------------------------------------------日期---------------------------------------------------------------------分割线
今天我又改动了下,试了下赋值语句。
欣喜的告诉大家:
Browser("xxxxxx").Page("xxxxxx").Frame("text_2").WebEdit("birthday").Object.Value="2009-12-11"
这个语句可以用。可以对其中的时间做一参数化。
下面附上我参数之后的脚本
Dim i '定义行号
Browser("xxxxxx").Page("xxxxxx").WebEdit("sysUser.usrName").Set "admin"
Browser("xxxxxx").Page("xxxxxx").WebEdit("sysUser.usrPassword").SetSecure "4ee5c7ca589962f8d39ecb6e1449e71b53fc"
Browser("xxxxxx").Page("xxxxxx").Image("01").Click
Browser("xxxxxx").Page("xxxxxx").Frame("menu").Link("权限管理").Click
Browser("xxxxxx").Page("xxxxxx").Frame("menu").Link("老师表维护").Click
For i=1 to datatable.GetSheet("Action1").getrowcount '做一个录入老师信息的输入循环
Browser("xxxxxx").Page("xxxxxx").Frame("text").Link("添加教师信息").Click
Browser("xxxxxx").Page("xxxxxx").Frame("text_2").WebEdit("teacherId").Set DataTable("teacherid", dtLocalSheet)
Browser("xxxxxx").Page("xxxxxx").Frame("text_2").WebEdit("name").Set DataTable("teachername", dtLocalSheet)
Browser("xxxxxx").Page("xxxxxx").Frame("text_2").WebRadioGroup("sex").Select DataTable("teachersex", dtLocalSheet)
Browser("xxxxxx").Page("xxxxxx").Frame("text_2").WebEdit("birthday").Object.Value=DataTable("StarDate" ,dtLocalSheet) '由于这一句是我写的,所以手写了日期的参数化
Browser("xxxxxx").Page("xxxxxx").Frame("text_2").WebButton("WebButton").Click
datatable.GetSheet("Action1").setnextrow '进入Data Table 里的下一行
Next
Browser("xxxxxx").Page("xxxxxx").Frame("text_3").WebEdit("teacherId2").Set "t001"
Browser("xxxxxx").Page("xxxxxx").Frame("text_3").WebButton("WebButton").Click
Browser("xxxxxx").Page("xxxxxx").Frame("topFrame").Image("点击退出").Click
Browser("xxxxxx").Dialog("来自网页的消息").WinButton("确定").Click
Browser("xxxxxx").Page("xxxxxx_2").Sync
Browser("xxxxxx").Close