2023年7月9日发(作者:)
使⽤AutoIT测试系统登录实例四(IE窗⼝⼤⼩控制)使⽤AutoIT中_IECreate打开的页⾯,往往不是最⼤化的。很多时候,⼀些重要的页⾯错误效果没有被正确的截屏,就是因为窗⼝没有最⼤化错误信息被遮住。为了解决这⼀情况,需要在脚本中增加最⼤化IE窗⼝的功能。⽬前AutoIT主要有三种⽅法实现IE窗⼝的最⼤化。(1)设置IE窗⼝属性值_IEPropertySet ($OIE, "left",0)_IEPropertySet ($OIE, "top",0)_IEPropertySet ($OIE, "height",@DesktopHeight-30)_IEPropertySet ($OIE, "width",@DesktopWidth)(2)向窗⼝发送组合快捷键WinActivate($title,"")Send("!+{SPACE}+X")这个⽅法需要注意的是:⼀定要先使⽤WinActivate⽅法激活窗⼝,否则如果页⾯存在输⼊框,则这个快捷键将可能被输⼊到输⼊框中,达不到最⼤化IE窗⼝的效果。(3)使⽤WinSetState设置窗⼝状态WinSetState($title,"",@SW_MAXIMIZE)这个⽅法使⽤的⽐较普遍。
上⾯提到的后两种⽅法,前提都是要先获取IE当前页⾯的title,可使⽤以下办法:$doc = _IEDocGetObj($OIE) ;创建⼀个document对象$title=$ ;获取document对象的Title属性
下⾯发出完整的脚本⽚段:#Include#Include#Include#IncludeWriteToFile($LogPath,"开始测试Login")$sheet=Gettestsheet($TestCasePath,1)Dim $Tester=$(2,1).valueDim $TesterPWD=$(2,2).valueLoginTest($Tester,$TesterPWD)CloseExcel()Func LoginTest($Tester,$TesterPWD)$Original=GetRecordCount("Select * from UserLoginLog where phonenumber="&$Tester)$OIE = _IECreate($testURL,0,1,1,0)$doc = _IEDocGetObj($OIE)$title=$;WinSetState($title,"",@SW_MAXIMIZE);WinActivate($title,"");Send("!+{SPACE}+X")_IEPropertySet ($OIE, "left",0)_IEPropertySet ($OIE, "top",0)_IEPropertySet ($OIE, "height",@DesktopHeight-30)_IEPropertySet ($OIE, "width",@DesktopWidth)_IELoadWait($OIE)Local $Login=_IELinkClickByText($OIE,"登录")While Not $isobj If $timer>=3 Then WriteToFile($LogPath,"找不到输⼊框,有可能是上⼀个⽤户没有正常退出") $test= CaptureScreen($ImagePath,"LoginError"&$Tester) SetError("2") ExitLoop EndIf $timer+=1 Local $Inputname = _IEGetObjByName($OIE,"txtPhoneNum") Local $Inputpassword = _IEGetObjByName($OIE,"txtPassword") If Not IsObj($Inputname)Or Not IsObj($Inputpassword) Then Sleep(2000) Else $isobj=True $=$Tester $=$TesterPWD EndIf WEnd $timer=0 $isobj=FalseLocal $Inputcheck= _IEGetObjByName($OIE,"txtRadomPicCode")If Not IsObj($Inputcheck) Then$spans=_IETagNameGetCollection($OIE,"span")if $spans(0).innertext==("⽤户"&$Tester) Then SetError("5")Else $test= CaptureScreen($ImagePath,"CheckCodeError"&$Tester) SetError("4") EndIfElse$checkCode=InputBox("提⽰","请输⼊验证码:")$=$checkCodeLocal $btn= _IEGetObjByName($OIE,"btnSubmitLogin")_IEAction($btn,"Click")_IELoadWait($OIE)Sleep(2000)Local $Loginwrap = _IEGetObjById($OIE,"Loginwrap")_IELoadWait($OIE)If Not IsObj($Loginwrap) Then $spans=_IETagNameGetCollection($OIE,"span") if $spans(0).innertext==("⽤户"&$Tester) Then SetError("1") Else $test= CaptureScreen($ImagePath,"LoginError"&$Tester) SetError("3") EndIfElse $test= CaptureScreen($ImagePath,"LoginError"&$Tester) SetError("3")EndIfEndIfSwitch @error Case 1 $result="成功" Case 2 $result="登录框上的按钮不见啦" Case 3 $result="抱歉,登录失败" Case 4 $result="登录时,验证码输⼊框不存在" Case 5 $result="⽤户已经登录了" Case Else $result="未定义的错误"EndSwitch$new = GetRecordCount("Select * from UserLoginLog where phonenumber="&$Tester)If $new<=$Original Then $result=$result&",没有记录数据库⽇志"Else $result=$result&",记录了数据库⽇志"EndIfWriteToFile($LogPath,"测试号码是:"&$Tester&"密码是:"&$TesterPWD&"结果为:"&$result)$IsClose=_IEQuit($OIE)If $IsClose<>1 Then $test= CaptureScreen($ImagePath,"quitIEError"&$Tester) ProcessClose($OIE)EndIfReturn $resultEndFun
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688898116a181941.html
评论列表(0条)