PowerShell小技巧实现IE Web自动化
更新时间:2014年09月17日 11:11:32 投稿:hebedich
使用IE的COM对象来完成简单的Web自动化测试,是最小巧和廉价的Web自动化测试了,因为它不用引入第三方插件或者工具。
Windows 系统自带的Internet Explore +加上PowerShell 即可搞定。
今天就分享下这几天自己写的几个小函数,欢迎拍砖:
# # 打开IE窗口 # function New-IEWindow { param( [string]$Url, [switch]$Visible, [switch]$FullScreen ) $Global:IEHost = new-object -com "InternetExplorer.Application" $Global:IEHost.Navigate($Url) #设置IE可见性和全屏 $Global:IEhost.Visible= $Visible $Global:IEHost.FullScreen= $FullScreen } # #等待IE加载完毕 # function Wait-IEReady([int]$TimeoutSeconds=10) { $milliseconds=0 $maxMilliseconds = $TimeoutSeconds * 1000 while($Global:IEHost.Busy) { if($milliseconds -gt $maxMilliseconds) { throw 'Wait ie ready timeout.' } sleep -Milliseconds 100 $milliseconds+=100 } } # # 根据ID,Class,Name,Tag获取HTML元素 # function Get-HtmlElement ($Id,$Name,$Class,$Tag) { if($Id) { return $IEHost.Document.getElementById($id) } elseif($Name) { return $IEHost.Document.getElementsByName($Name) } elseif($Class) { $IEHost.Document.all | where {$_.className -contains $Class} } elseif($Tag) { $IEHost.Document.getElementsByTagName($Tag) } } # #关闭IE窗口 # function Close-IEWindow { $Global:IEHost.quit() Remove-Variable IEHost -Force } # #设置IE的地址 # function Navigate-IE($Url) { Set-IE -URL $Url } # # 设置IE的地址,或者动作:前进,倒退,刷新 # function Set-IE { param( [ValidateSet('GoBack', 'GoForward','Refresh')] [string]$Action, [uri]$URL ) # 动作 switch($Action) { ('GoBack'){ $Global:IEHost.GoBack() } ('GoForward'){ $Global:IEHost.GoForward() } ('Refresh'){ $Global:IEHost.Refresh() } } # 设置IE地址 if( $URL) { $Global:IEHost.Navigate($URL) } } # # 在IE窗口中执行脚本 # function Invoke-IEScript($Code,$Language='Javascript') { if( -not [string]::IsNullOrWhiteSpace($Code)) { $Global:IEHost.Document.parentWindow.execScript($Code,$Language) } }
相关文章
PowerShell中使用Test-Path命令检查文件或文件夹路径是否存在示例
这篇文章主要介绍了PowerShell中使用Test-Path命令检查文件或文件夹路径是否存在示例,Test-Path命令的返回值是TRUE或FALSE,可以很方便的判断,需要的朋友可以参考下2014-08-08PowerShell中删除空格、点号、减号和换行方法代码实例
这篇文章主要介绍了PowerShell中删除空格、点号、减号和换行方法代码实例,本文直接给出实例代码,需要的朋友可以参考下2015-05-05探索PowerShell (三) PowerShell下使用Aliases
这一节就来介绍PowerShell下的Aliases。在PowerShell中,为了习惯于使用,可以使用别名代替命令2012-12-12
最新评论