找回密码
 加入
搜索
查看: 11862|回复: 13

[IE类操作] 请教高手,在网页注册页面,用autoit3如何选择年份?【已解决】

 火.. [复制链接]
发表于 2013-7-18 18:25:24 | 显示全部楼层 |阅读模式
本帖最后由 fenhanxue 于 2013-7-22 14:13 编辑

求助哦,如图这个QQ号码注册页面,年份这里,应该怎么用auto3自动选择哦?



下载了论坛里风行高人的“网页快捕”,显示的这个年份的属性是这样的:



试过这样的代码,但是貌似显示是已经输入,但是当我再下一步,会提示我输入“年份,月份和日期”(即提示日期还未输入)
#include <IE.au3>
Local $oIE = _IECreate("http://zc.qq.com/chs/index.html")
Sleep(4000)
Local $oForm = _IEFormGetCollection($oIE,1)

Local $oQuery = _IEGetObjById($oIE ,"year_value" )
$oQuery.value="1993年"
$oQuery.click

Local $oQuery = _IEGetObjById($oIE ,"month_value" )
$oQuery.value="2月"
$oQuery.click

Local $oQuery = _IEGetObjById($oIE ,"day_value" )
$oQuery.value="3日"
$oQuery.click




想知道,应该用什么代码来实现拉?
是不是应该用_IEFormElementOptionSelect 这类的代码,但是一直弄不出来,求助高手帮忙

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-7-19 10:13:05 | 显示全部楼层
本帖最后由 风行者 于 2013-7-19 10:19 编辑

年月日都是动态加载的,应该先点击,等它弹出了,再找弹出的选框对象,最后使用_IEFormElementOptionSelect选择或click日期。就像人手操作一样

直接设置值没有触发某些事件,或js有检测些其它的。所以最简单的方法还是模拟人手操作一样。
发表于 2013-7-20 11:21:42 | 显示全部楼层
日期框可直接利用send("1993")可以完成
#include <IE.au3>

Local $oIE = _IECreate("http://zc.qq.com/chs/index.html")
_IELoadWait($oIE)
Send ("asdfasdf")
Send("{TAB}")
Send("123456789")
Send("{TAB}")
Send("123456789")
Send("{TAB}")
Send("{TAB}")
Send("{Enter}")
Sleep("500")
Send("{TAB}")
Sleep("500")
Send("{TAB}")
Sleep("500")
Send("1993")
Sleep("500")
Send("{TAB}")
Send("2")
Sleep("500")
Send("{TAB}")
Send("3")
Sleep("500")
Send("{TAB}")
Exit
发表于 2013-7-21 11:40:27 | 显示全部楼层
兵来将挡水来土掩把

$oTemp = _IEGetObjById($oIE, "year_" & Random(12, 33, 1));随机年1980-2000
        $oIE.document.parentwindow.execscript("index.switchYear();")
        _IEAction($oTemp, "click")
        $oIE.document.parentwindow.execscript("index.hideYear();")
        Sleep(1000)

        $oTemp = _IEGetObjById($oIE, "month_" & Random(0, 11, 1));随机月
        $oIE.document.parentwindow.execscript("index.switchMonth();")
        _IEAction($oTemp, "click")
        $oIE.document.parentwindow.execscript("index.hideMonth();")
        Sleep(1000)

        $oTemp = _IEGetObjById($oIE, "day_" & Random(0, 27, 1));随机日
        $oIE.document.parentwindow.execscript("index.switchDay();")
        _IEAction($oTemp, "click")
        $oIE.document.parentwindow.execscript("index.hideDay();")
        Sleep(1000)
 楼主| 发表于 2013-7-22 14:17:13 | 显示全部楼层
回复 4# komaau3


    亲,弱弱地想请教下,您这写的     .document.parentwindows.execscript
   类似的这些代码,是不是在AUTOIT3的帮助文档里面找不到的拉?这些代码,具体对应的意义在哪里可以找到帮助文档么?
发表于 2013-7-22 17:48:07 | 显示全部楼层
本帖最后由 komaau3 于 2013-7-23 08:13 编辑

回复 5# fenhanxue

网页操作参考DHTML手册  里面各元素、各属性、方法都很详细   论坛很多例子 结合实践  很容易就理解了



先理解下面的东西 对象编程无外乎下面的东西

                 .properties 属性
object对象 .methods 方法
                 events 事件(objevent函数注册事件回调)

document.parentWindow.execScript就理解成  document是一个文档对象   parentWindow是document的属性  document.parentWindow是一个容器窗口对象  execScript是容器窗口对象的方法

依次看下面4个链接
http://www.hbcms.com/main/dhtml/objects/obj_document.html
http://www.hbcms.com/main/dhtml/properties/parentwindow.html
http://www.hbcms.com/main/dhtml/objects/obj_window.html
http://www.hbcms.com/main/dhtml/methods/execscript.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2013-7-22 21:47:12 | 显示全部楼层
回复 6# komaau3


   学习到拉,太感激拉~
发表于 2013-8-20 21:51:38 | 显示全部楼层
我找了好久的学习资料找到了
发表于 2013-9-10 11:05:51 | 显示全部楼层
好東西, 推, 謝謝大大~......
发表于 2013-10-21 18:29:42 | 显示全部楼层
好東西, 推, 謝謝大大~......
 楼主| 发表于 2013-11-22 22:47:27 | 显示全部楼层
回复 4# komaau3

亲能不能再弱弱地请教下,这段语句里
$oIE.document.parentwindow.execscript("index.hideYear();")

$oIE.document.parentwindow.execscript  这些语句我都理解拉

但  index.hideYear()    这一行是怎么得到的拉?
发表于 2013-11-23 09:00:14 | 显示全部楼层
回复 11# fenhanxue

分析网页脚本得到 每一个JS事件被触发 网页都会向服务器发送一个封包 因此要激活事件才行 包括鼠标的移动都会发送封包到服务器 TX帐号注册不是一般的严格
 楼主| 发表于 2013-11-23 11:11:45 | 显示全部楼层
回复 12# komaau3


    我下载了那个 彗星小助手,能分析到了 index.js这个文件,网页分析的话,一般需要借助什么软件来进行哇?
发表于 2013-11-23 21:35:14 | 显示全部楼层
回复 13# fenhanxue

个人觉得ie开发人员工具甚好 &#160;推荐ie9下的开发人员工具 &#160;元素分析 js断点 格式化等等&#160;一个工具足够了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-17 08:40 , Processed in 0.084575 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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