;===============================================================;
    ;B/S资源单点登录autoit脚本技巧总结(一)  ;
    ;===============================================================;
   
    ;下面是普通B/S资源 最常使用的单点登录脚本,下面的讨论也是基于该方法,并考虑各种特殊情况!
    $oIE = _IECreate ($temp_url)  ; 打开IE
    ;-------------------------------------------------------
    $oForm = _IEFormGetObjByName ($oIE, $form_name) 
    $inputctrl_username = _IEFormElementGetObjByName ($oForm, $input_username)
    $inputctrl_password = _IEFormElementGetObjByName ($oForm, $input_password)
       
    _IEFormElementSetValue ($inputctrl_username, $user)
    _IEFormElementSetValue ($inputctrl_password, $pass)
   
   
    ;提交表单方法 1:
    ;最普通表单,直接提交form
    _IEFormSubmit ($oForm)
   
       
    ;提交表单方法 2:
    ;到提交按钮(这里不包含链接按钮)name属性(id亦可,对应_IEGetObjById),进行点击提交表单
    $oSubmit = _IEGetObjByName ($oIE, "submit")
    _IEAction ($oSubmit, "click")
   
   
    ;提交表单方法 3:
    ;直接执行链接,或图片链接中(这里指以非 input标签形式存在的按钮,该按钮使用方法2无法获取按钮)或者 form action中的 提交js脚本
    $oIE.document.parentWindow.execscriptautoit("onSubmitForm()")
   
   
   
    ;form没有name属性的情况,如何获取form?   
    $oForm =_IEFormGetCollection ($oIE, 0);获取未命令的form
    ;第二个参数0代表该form在整个form中的序号,如果只有一个则为0
   
   
    ;================================================================================
    ;按上面的方法仍然无法获得form(个别页面无 form标签),进而无法按普通方式获取文本框!
    ;下面的方法获得文本框,即不通过form获取表单元素
    ;_IEGetObjByName() 和 _IEGetObjById() 2种方法
    ;同样,这种方法对于 文本框上有js验证的比较有效!
    $oname =_IEGetObjById($oIE, $input_username)
    _IEAction ($oname, "click")
    send($user)
   
   
    ;无法获得form,这种方式另外一个赋值方法
    $UserName = _IEGetObjById ($oIE, "UserName")
    $UserName.focus
    $UserName.value = $user
   
       
   
    ;验证码输入框,获取焦点
    $inputctrl_code = _IEFormElementGetObjByName ($oForm, $input_code)
    _IEAction($inputctrl_code, "focus")
    ;对于B/S,中的特殊情况:flash,flex等只能通过坐标定位!略!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。