如何点击无链接的按钮?[已解决]
本帖最后由 cashiba 于 2016-10-17 22:38 编辑样式:
源码:<form method="post" autocomplete="off" id="lsform" action="member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes" onsubmit="return lsSubmit();">
......
<td class="fastlg_l"><button type="submit" class="pn vm" tabindex="904" style="width: 75px;"><em>登录</em></button></td>
</form>
以下登录都不好使:
$oForm = _IEFormGetObjByName ($oIE, "lsform")
....
_IEFormSubmit($oForm)
;_IELinkClickByIndex($oIexp,0)
;_IEAction($oForm, "click")为啥? 试一试根据 className 获取 button 的对象,然后调用 click 方法。 试一试根据 className 获取 button 的对象,然后调用 click 方法。
nmgwddj 发表于 2016-9-27 19:39 http://www.autoitx.com/images/common/back.gif
主要是想知道为啥
_IEFormSubmit($oForm)
不好使,是因为有这个
onsubmit="return lsSubmit();"
吗? 本帖最后由 cashiba 于 2016-9-27 21:15 编辑
<form method="post" autocomplete="off" id="lsform" action="member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes"
onsubmit="return lsSubmit();">
<div class="fastlg cl">
<span id="return_ls" style="display:none">
</span>
<div class="y pns">
<table cellspacing="0" cellpadding="0">
<tr>
<td>
<span class="ftid">
<select name="fastloginfield" id="ls_fastloginfield" width="40" tabindex="900">
<option value="username">
用户名
</option>
<option value="email">
</option>
</select>
</span>
<script type="text/javascript">
simulateSelect('ls_fastloginfield')
</script>
</td>
<td>
<input type="text" name="username" id="ls_username" autocomplete="off"
class="px vm" tabindex="901" />
</td>
<td class="fastlg_l">
<label for="ls_cookietime">
<input type="checkbox" name="cookietime" id="ls_cookietime" class="pc"
value="2592000" tabindex="903" />
自动登录
</label>
</td>
<td>
<a href="javascript:;" onclick="showWindow('login', 'member.php?mod=logging&action=login&viewlostpw=1')">
找回密码
</a>
</td>
</tr>
<tr>
<td>
<label for="ls_password" class="z psw_w">
密码
</label>
</td>
<td>
<input type="password" name="password" id="ls_password" class="px vm"
autocomplete="off" tabindex="902" />
</td>
<td class="fastlg_l">
<button type="submit" class="pn vm" tabindex="904" style="width: 75px;">
<em>
登录
</em>
</button>
</td>
<td>
<a href="member.php?mod=register" class="xi2 xw1">
立即注册(register)
</a>
</td>
</tr>
</table>
<input type="hidden" name="quickforward" value="yes" />
<input type="hidden" name="handlekey" value="ls" />
</div>
<div class="fastlg_fm y" style="margin-right: 10px; padding-right: 10px">
<p>
<a href="http://www.XXX.cn/bbs/connect.php?mod=login&op=init&referer=forum.php&statfrom=login_simple">
<img src="static/image/common/qq_login.gif" class="vm" alt="QQ登录" />
</a>
</p>
<p class="hm xg1" style="padding-top: 2px;">
只需一步,快速开始
</p>
</div>
</div>
</form>
以上是全部表单代码。
下面是外观:
回复 3# cashiba
具体不明,我觉得应该不影响。除非是拦截了 submit 事件。 回复cashiba
具体不明,我觉得应该不影响。除非是拦截了 submit 事件。
nmgwddj 发表于 2016-9-27 22:37 http://www.autoitx.com/images/common/back.gif感觉不少网页有内嵌的其它脚本语言,比喻javascript、jquery、ajax等交互式应答。不知道AU3有没有这方面的函数 用HTML DOM 的click方法,按钮触发的脚本都会加载或者用_IEAction
对象获取总会有办法的 实在不行用标签集合 索引 本帖最后由 cashiba 于 2016-10-16 10:01 编辑
用HTML DOM 的click方法,按钮触发的脚本都会加载或者用_IEAction
对象获取总会有办法的 实在不行用标 ...
cxlater 发表于 2016-10-15 08:38 http://www.autoitx.com/images/common/back.gif
嗯,最近才知道这个标签集合函数_IETagNameGetCollection
只是这个索引,如果同一页面有几个表单很多input标签的话,是不是还要自己来定位数数是第几个呢{:face (396):} 回复 8# cashiba
For $subbutton In $bottons
If $button.innertext = "登录" Then
$button = $subbutton
ExitLoop
EndIf
Next
回复cashiba
cxlater 发表于 2016-10-16 21:02 http://www.autoitx.com/images/common/back.gif
嗯,先找集合,再特征找到目标,不熟悉HTML+DOM语法估计不一定写得出代码
For $subbutton In $bottons=For $subbutton In $buttons 本帖最后由 风行者 于 2016-10-17 20:50 编辑
网页.au3是网页源码
#include <IE.au3>
Local $oIE = _IECreateEmbedded()
#Region - GUI Create
GUICreate('测试', 500, 500)
GUICtrlCreateObj($oIE, 0, 0, 500, 500)
GUISetState(@SW_SHOW)
#EndRegion - GUI Create
_IENavigate($oIE, "about:blank")
_IEDocWriteHTML($oIE, FileRead("网页.au3"))
_IEAction($oIE, "refresh")
Local $user = _IEGetObjByName($oIE, "username")
_IEFormElementSetValue($user, "myname")
Local $pw = _IEGetObjByName($oIE, "password")
_IEFormElementSetValue($pw, "123456")
Sleep(2000) ;看效果
$sum = _IETagNameGetCollection($oIE, "em", 0)
$sum.click()
While 1
If GUIGetMsg() = -3 Then Exit
Sleep(100)
WEnd 本帖最后由 cashiba 于 2016-10-17 22:35 编辑
网页.au3是网页源码
风行者 发表于 2016-10-17 20:49 http://www.autoitx.com/images/common/back.gif
风老师在这方面是大神级别的阿,非常感谢!其实用你的网页快捕已经解决这个问题了,确实好用{:face (130):} 通过本帖认识和学到了 _IETagNameGetCollection
感谢各位老师! 回复 11# 风行者
老大看到加一下我QQ2898436037
页:
[1]