mmsw450
发表于 2013-1-28 14:12:05
回复 20# 四季草堂
QTP自带的IDE为主,辅之以VBSEdit、NotePad++等;
推荐VBSEdit.蛮好用。
Notepad++用来格式化和阅读代码;很好使。
xajhuang
发表于 2013-1-28 17:26:52
楼主说的“输入始发,终点 及 日期;然后点击查询按钮;因为12306作了一点小手段,
'导致QTP自动输入后查不出来车次!此步骤建议手动输入!!”其实是可以自动化实现的:输入值之前先使“WebEdit”获得焦点,然后输入值,再模拟键盘{Enter}一下,即可查询了,代码如下:
Set wshShell = CreateObject("Wscript.Shell")
With Browser("micclass:=Browser").Page("micclass:=Page")
'点击“车票预定”链接
.Link("name:=车票预订","class:=text_yellow").Click
'输入始发,终点 及 日期;然后点击查询按钮;加了几个Hidden的input,根据输入的车站值自动变化)
.WebEdit("name:=orderRequest.from_station_name").Click 1,1
.WebEdit("name:=orderRequest.from_station_name").Object.classname="input_20txt"
.WebEdit("name:=orderRequest.from_station_name").Object.value="杭州"
wshShell.SendKeys "{ENTER}"
.WebEdit("name:=orderRequest.to_station_name").Click 1,1
.WebEdit("name:=orderRequest.to_station_name").Object.classname="input_20txt"
.WebEdit("name:=orderRequest.to_station_name").Object.value= "上海"
wshShell.SendKeys "{ENTER}"
.WebEdit("name:=orderRequest.train_date").Object.value = "2013-2-13"
wshShell.SendKeys "{ENTER}"
.WebButton("class:=search_u").Click
End With
mmsw450
发表于 2013-1-28 21:19:26
回复 22# xajhuang
感谢 xajhuang兄 提供的方法;坛子里果然藏龙卧虎。
我在之间曾试过,用QTP但无论输入值是什么,模拟回车时,都会变成“北京北”,如附图。
这让我略微郁闷了一把。所以才有附件代码中的注释。
不知道您那里为何能够正常,希望能加阁下QQ,交流一二。我Q:85645204
手动输入的时候,是需要鼠标点一下悬浮提示站点,或者回车一下的。就会正常查询。
这时 ,它会把车站的站名和车站编号分别赋值给下面的FORM表单中。附图如下。
如果不执行回车过程,在FORM表单中,就没有这个编号值。查询的时候,结果也就为空。
xajhuang
发表于 2013-1-29 09:52:40
我也是QTP的学习者之一,正好自己也在用QTP写小助手订票。看到贵兄的帖子,想学习一下,才有了上述不成熟的建议,“藏龙卧虎”实在不敢当。
你说的那两种现象我都碰到了:1、直接赋值后查询,12306会提示“您选择的日期不在预售期内”;2、赋值后回车,出发地和目的地都是“北京北”。
后来参考了一下手工操作,发现要在赋值之前使文本框获得焦点,然后赋值,再回车,这样就可以查询了。不过这样做有个问题:回车后会默认选择下拉框的第一个值。比如出发地,输入“北京”,回车后,会把下拉框第一个值“北京北”赋值给“出发地”,虽然不影响最后的查询结果。但是这也终归是个问题,呵呵。
想你的美
发表于 2013-1-29 12:22:40
支持哈
xiaoshi_2011
发表于 2013-1-29 14:29:59
顶一个
xiaoyouer
发表于 2013-1-29 15:26:25
回复 1# mmsw450
我对qtp只到了录制回放和简单设置参数级别,而且浏览器装了多个,要命的是装了360急速,所以ie一直不好用,现在又录制不了了。
泰然
发表于 2013-1-29 15:58:23
呵呵,我也来做一个,对象名称有调整.另外脚本从完成登录,点开车票预订界面后开始执行.解决了输入的问题Dim strFrom, strTo, strDate
strFrom = inputBox("出发地")
strTo = inputBox("目的地")
strDate = inputBox("出发日期,格式如2013-01-01")
'strFrom = "上海"
'strTo = "北京"
'strDate = "2013-02-02"
Browser("12306").Page("NewOrder").Frame("main").WebEdit("FromCity").Set ""
Browser("12306").Page("NewOrder").Frame("main").WebEdit("FromCity").Click 1,1
Set oClp = CreateObject("Mercury.Clipboard")
oClp.Clear
oClp.SetText strFrom
Set oWsh = CreateObject("Wscript.shell")
oWsh.SendKeys "^v"
Set oCityList = Browser("12306").Page("NewOrder").Frame("main").Object.getElementById("panel_cities").ChildNodes
For i = 0 to oCityList.length -1
If oCityList(i).ChildNodes(0).innertext=strFrom then
For j = 0 to i-1
oWsh.SendKeys "{DOWN}"
Next
oWsh.SendKeys "{ENTER}"
Exit for
end if
Next
Set oCityList = Nothing
Browser("12306").Page("NewOrder").Frame("main").WebEdit("ToCity").Set ""
Browser("12306").Page("NewOrder").Frame("main").WebEdit("ToCity").Click 1,1
oClp.Clear
oClp.SetText strTo
oWsh.SendKeys "^v"
wait 1
Set oCityList = Browser("12306").Page("NewOrder").Frame("main").Object.getElementById("panel_cities").ChildNodes
For i = 0 to oCityList.length -1
print oCityList(i).ChildNodes(0).innerhtml
If oCityList(i).ChildNodes(0).innertext=strTo then
print i
For j = 0 to i-1
oWsh.SendKeys "{DOWN}"
Next
wait 1
oWsh.SendKeys "{ENTER}"
Exit for
end if
Next
Set oCityList = Nothing
Set oWsh = Nothing
Set oClp = Nothing
Browser("12306").Page("NewOrder").Frame("main").WebEdit("TrainDate").Object.innerText = strDate
Browser("12306").Page("NewOrder").Frame("main").WebButton("Select").Click
liurenhui
发表于 2013-1-29 17:19:06
学以致用,,哈哈哈:victory:
104509426
发表于 2013-1-29 21:09:57
楼上全是高手,能否请教如何提交订单呢,提交订单前必须要输入验证码?那些抢票软件是如何做到啊,求解啊
mmsw450
发表于 2013-1-30 09:19:39
回复 28# 泰然
泰然兄居然利用了剪贴版;呵呵;有想法。
呆会试试你这部分代码。
mmsw450
发表于 2013-1-30 10:16:44
回复 27# xiaoyouer
QTP是利用BHOmanager插件驱动IE的、建议你把防火墙、杀软、助手啊,一些不常用IE插件都关闭或停用。
coolwind09
发表于 2013-1-30 14:24:23
绝对是人才。百分之百的是人才啊···
hnhellen
发表于 2013-1-30 17:45:25
楼主学以致用,受教了
hnhellen
发表于 2013-1-30 17:46:30
不过我用QTP 到入不了文件 我用的是QTP 9.2 不知道是不是版本问题?
黑羽祭
发表于 2013-2-1 09:32:16
有点意思啊~
pl80601983
发表于 2013-2-1 09:38:28
学习与时俱进,真好.
seven_1987
发表于 2013-2-1 09:55:04
牛逼人物!:lol
mmsw450
发表于 2013-2-1 10:26:44
回复 36# 黑羽祭
谢黑羽祭彭Sir 两位版主捧场指导。:lol
咖啡猫来啦
发表于 2013-2-2 13:43:22
{:3_79:}来学习一下