找回密码
 加入
搜索
查看: 1215|回复: 6

这个点按钮的问题应该可以帮我解决

[复制链接]
发表于 2009-10-19 16:08:16 | 显示全部楼层 |阅读模式
本帖最后由 yigao 于 2009-10-27 19:39 编辑

以前点按钮一直这样操作
For $oInput In $oInputs
                if  $oInput.type = "submit"  then
                $IeWait=_IEAction ($oInput, "click")
                _IELoadWait($IeWait)
                sleep(5000)
                EndIf
     Next
现在发现某些页面下存在两个button type="submit",我尝试将代码改为如下:
For $oInput In $oInputs
                $m=0
                if ($oInput.type = "submit" and $m=1) then
                $IeWait=_IEAction ($oInput, "click")
                _IELoadWait($IeWait)
                sleep(5000)
                EndIf
                $m=$m+1
        Next
意思是希望遇到第二个button再点击,结果无效。还有什么办法吗?

部分源文件如下:
<input type="hidden" name="pid" value="uni-header">
                                <input type="hidden" id="v" name="v" value="web">
                                <fieldset>
                                        <legend>网页搜索</legend>
                                        <input name="p" value="" size="20"><button type="submit">网页搜索</button>
                                </fieldset>
                        </form>
 <input name="_crumb" value="a2c3a56b4b15c49a2307234e141ac06d" type="hidden">
                                                    <input name="qid" value="1409101900429" type="hidden">
              <input name="pic_url" value="" type="hidden">
                          <input name="link" value="answer" type="hidden">
              <input name="update" value="" type="hidden">
                          <tr>
                                <td> </td>
                                <td><button type="submit" class="submitbtn">提交回答</button></td>
                          </tr>
                        </table>
                        </form>
                </div>
                <!--}}end:question2-->
 楼主| 发表于 2009-10-19 16:15:18 | 显示全部楼层
也曾经这样尝试过:
if ($oInput.type = "submit" and $oInput.class = "submitbtn") then
……
依然无效!这样操作就出错误了
 楼主| 发表于 2009-10-19 16:39:16 | 显示全部楼层
觉得上面的判断流程还是有问题,又试了一种
For $oInput In $oInputs
                $m=0
                if $oInput.type = "submit" then
                        if $m=1 then
                        $IeWait=_IEAction ($oInput, "click")
                        _IELoadWait($IeWait)
                        sleep(5000)
                        EndIf
                EndIf
                $m=$m+1
        Next
还是不行
发表于 2009-10-20 08:36:32 | 显示全部楼层
基本上每一个 _IEGetXXXXX 都有索引参数 用索引来确定是哪一个按钮

评分

参与人数 1金钱 +5 收起 理由
yigao + 5

查看全部评分

 楼主| 发表于 2009-10-20 14:19:22 | 显示全部楼层
加上索引确实可以点上了!只是稳定性还不够,仿佛有时候能点上有时候点不上似的,如何在等待点击完成后再继续下一步?
本来已经有了
_IELoadWait($IeWait)
sleep(5000)
觉得应该双保险,实则不然!
发表于 2009-10-20 22:21:43 | 显示全部楼层
本帖最后由 liongodmien 于 2009-10-20 22:22 编辑

参考:
>>#include 'ie.au3'
Dim $oIE = _IEAttach('网页搜索', 'text'), $obj = _IETagNameGetCollection($oIE, 'button')
For $i In $obj
        If StringInStr($i.outertext, '提交回答') Then MsgBox(0,0, 'find then 提交回答')
Next


等待网页完全载入一般_IELoadWait已经可以,但现在更多网页有二次载入,则可利用多次载入检查或其它一些可用办法。

评分

参与人数 1金钱 +5 收起 理由
yigao + 5

查看全部评分

 楼主| 发表于 2009-10-21 15:05:02 | 显示全部楼层
谢谢,我试试看
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-23 22:39 , Processed in 0.079575 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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