找回密码
 加入
搜索
查看: 3383|回复: 3

[IE类操作] 表单提交之IE带验证的问题(已解决)

[复制链接]
发表于 2010-9-19 22:43:41 | 显示全部楼层 |阅读模式
本帖最后由 shano 于 2010-9-23 02:20 编辑

一表单填写一项后会自动检测合法性,但是AUTOIT填表却不能激活检测,点击提交会提示某一项无效,目前我的方法是AUTOIT提交一次焦点会选在其中一项 然后发送一个TAB离开焦点就会激活检测,连续发送6次。。汉       感觉这个方法好傻,而且发送的是TAB  会影响操作 不知道各位大侠们有没有其他高招,附上我的代码
www.king.com/signup.jsp  目标网址

$oIE1 = _IECreate ("http://www.king.com/signup.jsp",0,1,0,1)
sleep(20000)
$form = _IEFormGetObjByName($oIE1, "frmSignup");获取表单对象
TrayTip("提示","获取表单对象",10)

$oQuery = _IEFormElementGetObjByName ($Form, "username")   
_IEFormElementSetValue ($oQuery,"fdsaklfjk3",0 )   
$oQuery = _IEFormElementGetObjByName ($Form, "password")   
_IEFormElementSetValue ($oQuery, 234234,1)   
$oQuery = _IEFormElementGetObjByName ($Form, "email")   
_IEFormElementSetValue ($oQuery, "fdsaklfjkl123@fdsfds.com",1)   
$birthYear=Random(8,28,1)
$oQuery = _IEFormElementGetObjByName ($Form, "birthYear")
_IEFormElementOptionSelect ($oQuery , $birthYear, 1, "byIndex")
$birthMonth=Random(1,11,1)
$oQuery = _IEFormElementGetObjByName ($Form, "birthMonth")
_IEFormElementOptionSelect ($oQuery , $birthMonth, 1, "byIndex")
$birthDateDay=Random(1,30,1)
$oQuery = _IEFormElementGetObjByName ($Form, "birthDateDay")
_IEFormElementOptionSelect ($oQuery ,  $birthDateDay, 1, "byIndex")
_IEFormElementRadioSelect ($Form, "2","gender", 1, "byValue")
TrayTip("提示","表单填写完毕",15)
Sleep(1000)  
$oSubmit=_IEGetObjById($Form,"submit")
$oSubmit.click
send("{tab}")
TrayTip("提示","第1次点击",15)
sleep(4000)
$oSubmit=_IEGetObjById($Form,"submit")
$oSubmit.click
send("{tab}")
TrayTip("提示","第3次点击",15)
sleep(4000)
$oSubmit=_IEGetObjById($Form,"submit")
$oSubmit.click
send("{tab}")
TrayTip("提示","第3次点击",15)
sleep(4000)
$oSubmit=_IEGetObjById($Form,"submit")
$oSubmit.click
send("{tab}")
TrayTip("提示","第4次点击",15)
sleep(4000)
$oSubmit=_IEGetObjById($Form,"submit")
$oSubmit.click
send("{tab}")
TrayTip("提示","第5次点击",15)
sleep(4000)
$oSubmit=_IEGetObjById($Form,"submit")
$oSubmit.click
send("{tab}")
TrayTip("提示","第6次点击",15)
sleep(4000)

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-9-21 15:49:49 | 显示全部楼层
没人知道吗
发表于 2010-9-22 00:56:53 | 显示全部楼层
网站我这打不开
有个函数可获取焦点,可尝试下
.focus
 楼主| 发表于 2010-9-23 02:20:05 | 显示全部楼层
哈哈  这个网站确实有点慢  
我有了新的方法就是通过API  后台发送TAB 这样就不会影响到其他工作
贴关键部分的代码

$oSubmit=_IEGetObjById($Form,"submit")
$oSubmit.click
sleep(2000)                ;提交一次 让光标停留在出错行
$cv=_WinAPI_PostMessage($oIE1,0x0100,9, 0) ;发送第一次TAB
$cv=_WinAPI_PostMessage($oIE1,0x0100,9, 1) ;发送第二次TAB
$cv=_WinAPI_PostMessage($oIE1,0x0100,9, 2)
$cv=_WinAPI_PostMessage($oIE1,0x0100,9, 3)
。。。。。。。。。。。。。。。。。。。。。。。。。
所有表单都验证后就可以再提提交

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-3 01:01 , Processed in 0.080982 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表