2014-06-19, 09:46 PM | #1 | |
注册日期: 2003-10-22
帖子: 11,052
积分:6
精华:24
现金:14344金币
资产:29325301金币
|
关于Autoit在IE中调用js函数的方法问题
Autoit在对网页编程中有一个自定义函数库IE.au3,里边有很多关于网页操作的函数。最近在写一个网页游戏外挂时遇到调用js脚本函数的问题,需要用Autoit对网页进行操作,调用js文件中的一个函数。 查遍Autoit的所有帮助文件,发现这个功能在IE.au3中并没有提供。 最后,在一篇关于网页编程的资料中发现了一个方法,可以实现Autoit调用js脚本函数的方法。 用一个实例来说明一下 这个例子是实现自动登录中华英才网会员区的,网址为:http://beijing.chinahr.com/。 首先观察一下会员登录区的Form代码: HTML 代码:
<form method="post" name="frmlogin" id="frmlogin" /> <div class="m_r"> <div class="chr_logn" id="logb"><div class="rzmtips dis_n" id="rzml"><span>注册并填写简历</span></div> <h1>个人用户登录</h1> <div> <div class="l_t"><a href="http://my.chinahr.com/register.aspx" class="butn_rzm" onmouseover="mouse('rzml','rzmtips')" onmouseout="mouse('rzml','rzmtips dis_n')">填简历</a><a href="http://my.chinahr.com/PwdReminder.aspx" class="gren">忘记密码</a><a href="http://my.chinahr.com/register.aspx" class="gren">注册账户</a></div> <div class="l_l"> <input type="text" name="username" id="LoginModule_ascx_tbUserName" class="inp col_b" value="请输入用户名" onclick="ClearTips(this, '请输入用户名');" onblur="SetTips(this, '请输入用户名');" onfocus="this.select()" /> <input type="password" name="password" id="LoginModule_ascx_tbPassword" class="inp col_b" value="请输入密码哦" onclick="ClearTips(this, '请输入密码哦');" onblur="SetTips(this, '');" onfocus="this.select()" /> <input type="hidden" id="v" name="v" value="2" /> <!--<Select id="LoginModule_ascx_ddlDomain" name="LoginModule_ascx$ddlDomain" style="display:none;"> <OPTION value="1" selected>个人服务</OPTION> </Select>--> <p> <input name="ckm" id="ckm" type="checkbox" value="ckml" class="chk"/><label for="ckm">记住我</label><input type="submit" class="butn_log" onclick="Javascript:return checkform();" value="登录" onmouseover="this.className='butn_log_h'" onmouseout="this.className='butn_log'"/><br/> </p> </div> </div> </div> <div class="chr_logn chr_logn_a dis_n" id="loga"> <h1><span class="c_l" id="logname"></span><span class="c_r"><a href="http://my.chinahr.com/logout.aspx?ReturnUrl=http://www.chinahr.com/index.htm" class="gren">退出</a></span></h1> <div class="txt" id="logcontent"> </div> </div> </div> </form> 所以必须用Autoit去调用checkform()函数来实现。 实现代码如下: HTML 代码:
$oIE = _IECreate("http://www.chinahr.com") WinSetState("中华英才网", "", @SW_MAXIMIZE) $o_form = _IEFormGetObjByName($oIE, "frmlogin") ;找到表单 $o_txtuser = _IEFormElementGetObjByName($o_form, "username") ;找到表单中的用户名 $o_txtpass = _IEFormElementGetObjByName($o_form, "password") ;找到表单中的 密码 _IEFormElementSetValue($o_txtuser, "duxt123") ;你的登录帐号 _IEFormElementSetValue($o_txtpass, "chinahr.com") ;你的登录密码 $result = $oIE.document.parentWindow.eval_r("checkform()") ;以下两种方法实现调用checkform()函数 ;$oIE.document.parentWindow.execscript("checkform()") |
|
|
||
|