这个点按钮的问题应该可以帮我解决
本帖最后由 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--> 也曾经这样尝试过:
if ($oInput.type = "submit" and $oInput.class = "submitbtn") then
……
依然无效!这样操作就出错误了 觉得上面的判断流程还是有问题,又试了一种
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
还是不行 基本上每一个 _IEGetXXXXX 都有索引参数 用索引来确定是哪一个按钮 加上索引确实可以点上了!只是稳定性还不够,仿佛有时候能点上有时候点不上似的,如何在等待点击完成后再继续下一步?
本来已经有了
_IELoadWait($IeWait)
sleep(5000)
觉得应该双保险,实则不然! 本帖最后由 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]