找回密码
 加入
搜索
查看: 3438|回复: 9

[AU3基础] [已解决]怎样获取控制163邮箱“登录”元素代码?

  [复制链接]
发表于 2012-4-5 13:01:31 | 显示全部楼层 |阅读模式
本帖最后由 lujd0429 于 2012-4-5 16:48 编辑

最近在学习IE管理方面的UDF函数,就自己尝试着做了一个自动登录163邮箱的au3脚本,可是怎么也获取控制不了“登录”按钮,所以就又看了一遍UDFs帮助文档,发现帮助中的函数都是通过ID或NAME来获取表单元素的,而163邮箱代码中没有!也尝试过用_IEFormSubmit函数也登录不了,求解~~

163邮箱“登录”按钮网页代码如下:




自动登录163邮箱代码如下:
#include <IE.au3>

$oIE = _IECreate("http://mail.163.com/")

$oForm = _IEFormGetObjByName($oIE, "login163") 

$username = _IEFormElementGetObjByName($oForm, "username") 

_IEFormElementSetValue($username, " 邮箱帐号 ")  

$password = _IEFormElementGetObjByName($oForm, "password") 

_IEFormElementSetValue($password, "邮箱密码")  


$button =" "                  ;此处不知道怎样获取!!

_IEAction($button, "click") ;点击登录按钮

本帖子中包含更多资源

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

×
发表于 2012-4-5 13:50:21 | 显示全部楼层
建议看看UDF实现过程中用到的函数。
发表于 2012-4-5 14:08:40 | 显示全部楼层
回复 1# lujd0429
<button id="loginBtn" class="btn btn-login" class="formSubmit" tabindex="6" type="submit">登 录</button>
仔细看看网页代码,button id="loginBtn"
$button = _IEGetObjByName($oIE,"loginBtn")
发表于 2012-4-5 14:15:17 | 显示全部楼层
本帖最后由 lixiaolong 于 2012-4-5 14:22 编辑

回复 1# lujd0429

我平时查找这种按钮时用正则,那么长的代码中一个一个看眼睛会痛的~
#include <Inet.au3>
#include <Array.au3>

$Str = _INetGetSource("http://mail.163.com/")
Local $Test = StringRegExp($Str, 'button.+', 3)
;~ Local $Test = StringRegExp($Str, '(?i)button.*?((?:id|name)\=".*?").*?>(.*?)<', 3)
_ArrayDisplay($Test, UBound($Test))

评分

参与人数 1金钱 +20 收起 理由
lujd0429 + 20 启发很大

查看全部评分

发表于 2012-4-5 14:47:02 | 显示全部楼层
写的164 说的是163 我插。
 楼主| 发表于 2012-4-5 16:05:37 | 显示全部楼层
回复 4# lixiaolong

惭愧~       还是菜鸟中~~
 楼主| 发表于 2012-4-5 16:07:24 | 显示全部楼层
回复 5# xx44t10

失误,打错字啦~
 楼主| 发表于 2012-4-5 16:08:28 | 显示全部楼层
回复 2# iank

嗯。。。。。。。。  在理
发表于 2012-4-5 16:09:25 | 显示全部楼层
下面是以前学IE操作时收集的, 刚测试, 还是可用
#include <IE.au3>
$oIE = _IECreate("http://mail.163.com/", 1, 1, 1, 1)
$oForm = _IEFormGetObjByName($oIE, "login163") ;登录表单

$username = _IEFormElementGetObjByName($oForm, "idInput") ;用户名
_IEFormElementSetValue($username, "用户名")  ;这里记得将username改成邮箱的账号

$password = _IEFormElementGetObjByName($oForm, "pwdInput") ;密码
_IEFormElementSetValue($password, "密码")  ;这里记得将password改成邮箱的账号

$button = _IEFormElementGetObjByName($oForm, "loginBtn") ;,登录按钮
_IEAction($button, "click") ;点击登录按钮
_IELoadWait($oIE, 800) ;给点延时,保证IE完全打开
这类网页操作, 似乎完全可以用 风行者的 网页快捕 获取到相应代码.
但收信和发信操作好像就不行了. 自己测试下吧, 不大记得了.
 楼主| 发表于 2012-4-5 16:40:01 | 显示全部楼层
回复 9# user3000


非常谢谢~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-19 07:46 , Processed in 0.089210 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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