cashiba 发表于 2016-9-27 10:04:27

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

本帖最后由 cashiba 于 2016-10-17 22:38 编辑

样式:


源码:<form method="post" autocomplete="off" id="lsform" action="member.php?mod=logging&amp;action=login&amp;loginsubmit=yes&amp;infloat=yes&amp;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")为啥?

nmgwddj 发表于 2016-9-27 19:39:26

试一试根据 className 获取 button 的对象,然后调用 click 方法。

cashiba 发表于 2016-9-27 20:53:07

试一试根据 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:01:31

本帖最后由 cashiba 于 2016-9-27 21:15 编辑


<form method="post" autocomplete="off" id="lsform" action="member.php?mod=logging&amp;action=login&amp;loginsubmit=yes&amp;infloat=yes&amp;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>
                        &nbsp;
                        <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>
                        &nbsp;
                        <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>
以上是全部表单代码。
下面是外观:

nmgwddj 发表于 2016-9-27 22:37:48

回复 3# cashiba


    具体不明,我觉得应该不影响。除非是拦截了 submit 事件。

cashiba 发表于 2016-10-14 16:07:51

回复cashiba
具体不明,我觉得应该不影响。除非是拦截了 submit 事件。
nmgwddj 发表于 2016-9-27 22:37 http://www.autoitx.com/images/common/back.gif感觉不少网页有内嵌的其它脚本语言,比喻javascript、jquery、ajax等交互式应答。不知道AU3有没有这方面的函数

cxlater 发表于 2016-10-15 08:38:39

用HTML DOM 的click方法,按钮触发的脚本都会加载或者用_IEAction
对象获取总会有办法的   实在不行用标签集合 索引

cashiba 发表于 2016-10-16 09:59:08

本帖最后由 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):}

cxlater 发表于 2016-10-16 21:02:13

回复 8# cashiba


For $subbutton In $bottons
        If $button.innertext = "登录" Then
                $button = $subbutton
                ExitLoop
        EndIf
Next

cashiba 发表于 2016-10-17 18:34:36

回复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: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

cashiba 发表于 2016-10-17 22:33:41

本帖最后由 cashiba 于 2016-10-17 22:35 编辑

网页.au3是网页源码
风行者 发表于 2016-10-17 20:49 http://www.autoitx.com/images/common/back.gif
风老师在这方面是大神级别的阿,非常感谢!其实用你的网页快捕已经解决这个问题了,确实好用{:face (130):}

cashiba 发表于 2016-10-17 22:38:28

通过本帖认识和学到了 _IETagNameGetCollection
感谢各位老师!

zpmc123 发表于 2017-1-19 17:16:23

回复 11# 风行者


    老大看到加一下我QQ2898436037
页: [1]
查看完整版本: 如何点击无链接的按钮?[已解决]