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

[IE类操作] 如何点击无链接的按钮?[已解决]

[复制链接]
发表于 2016-9-27 10:04:27 | 显示全部楼层 |阅读模式
本帖最后由 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")
为啥?

本帖子中包含更多资源

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

×
发表于 2016-9-27 19:39:26 | 显示全部楼层
试一试根据 className 获取 button 的对象,然后调用 click 方法。
 楼主| 发表于 2016-9-27 20:53:07 | 显示全部楼层
试一试根据 className 获取 button 的对象,然后调用 click 方法。
nmgwddj 发表于 2016-9-27 19:39

主要是想知道为啥
_IEFormSubmit($oForm)
不好使,是因为有这个
onsubmit="return lsSubmit();"
吗?
 楼主| 发表于 2016-9-27 21:01:31 | 显示全部楼层
本帖最后由 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">
                                    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>
以上是全部表单代码。
下面是外观:

本帖子中包含更多资源

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

×
发表于 2016-9-27 22:37:48 | 显示全部楼层
回复 3# cashiba


    具体不明,我觉得应该不影响。除非是拦截了 submit 事件。
 楼主| 发表于 2016-10-14 16:07:51 | 显示全部楼层
回复  cashiba
具体不明,我觉得应该不影响。除非是拦截了 submit 事件。
nmgwddj 发表于 2016-9-27 22:37
感觉不少网页有内嵌的其它脚本语言,比喻javascript、jquery、ajax等交互式应答。不知道AU3有没有这方面的函数
发表于 2016-10-15 08:38:39 | 显示全部楼层
用HTML DOM 的click方法,按钮触发的脚本都会加载  或者用_IEAction  
对象获取总会有办法的   实在不行用标签集合 索引
 楼主| 发表于 2016-10-16 09:59:08 | 显示全部楼层
本帖最后由 cashiba 于 2016-10-16 10:01 编辑
用HTML DOM 的click方法,按钮触发的脚本都会加载  或者用_IEAction  
对象获取总会有办法的   实在不行用标 ...
cxlater 发表于 2016-10-15 08:38

嗯,最近才知道这个标签集合函数  _IETagNameGetCollection
只是这个索引,如果同一页面有几个表单很多input标签的话,是不是还要自己来定位数数是第几个呢
发表于 2016-10-16 21:02:13 | 显示全部楼层
回复 8# cashiba


For $subbutton In $bottons
        If $button.innertext = "登录" Then
                $button = $subbutton
                ExitLoop
        EndIf
Next
 楼主| 发表于 2016-10-17 18:34:36 | 显示全部楼层
回复  cashiba
cxlater 发表于 2016-10-16 21:02

嗯,先找集合,再特征找到目标,不熟悉HTML+DOM语法估计不一定写得出代码
For $subbutton In $bottons=For $subbutton In $buttons
发表于 2016-10-17 20:49:18 | 显示全部楼层
本帖最后由 风行者 于 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
 楼主| 发表于 2016-10-17 22:33:41 | 显示全部楼层
本帖最后由 cashiba 于 2016-10-17 22:35 编辑
网页.au3是网页源码
风行者 发表于 2016-10-17 20:49

风老师在这方面是大神级别的阿,非常感谢!其实用你的网页快捕已经解决这个问题了,确实好用
 楼主| 发表于 2016-10-17 22:38:28 | 显示全部楼层
通过本帖认识和学到了 _IETagNameGetCollection
感谢各位老师!
发表于 2017-1-19 17:16:23 | 显示全部楼层
回复 11# 风行者


    老大看到加一下我QQ2898436037
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-29 13:38 , Processed in 0.087427 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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