Form中没有name的时候

Form中没有name的时候,就是form的id也可以替代name一项,在应用中可以使用;
如果二者都没有,那么我们也可以利用_IEFormGetCollection, 其返回值是变量合集,可以列出每个form的目标变量,有了她我们就找到需要的form了 .
#include <IE.au3>
$oIE = _IECreate ("http://www.autoitscript.com")
$oForms = _IEFormGetCollection ($oIE)
MsgBox(0, "Forms Info", "There are " & @extended & " forms on this page")
For $oForm In $oForms
MsgBox(0, "Form Info", $oForm.name)
Next
然后根据找到的form.name发点击动作
;$oFrame1=_IEFormGetObjByName($oIE,0)  ;0为找到的form.name,可以根据实际情况指定值
;$oQuery=_IEFormElementGetObjByName($oFrame1,"bntSetup")
;_IEAction($oQuery,"click")
今天找到一个更简单的方法:
$element = _IEGetObjByName ($oIE, "bntSetup" )   
_IEAction ($element, "click")
具体的源码如下:
click("name=bntSetup")
Func click($target)

if StringInStr($target, "link=") > 0 Then  
   $text = StringReplace($target, "link=", "")
   _IELinkClickByText ($oIE, $text )
ElseIf StringInStr($target, "name=") > 0 Then    
   $text = StringReplace($target, "name=", "")  
   $element = _IEGetObjByName ($oIE, $text )   
   _IEAction ($element, "click")
ElseIf StringInStr($target, "id=") > 0 Then  
   $text = StringReplace($target, "id=", "")
   $element = _IEGetObjById ($oIE, $text )
   _IEAction ($element, "click")
EndIf

EndFunc

你可能感兴趣的:(form,职场,name,休闲)