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小技巧之创建短网址

    Powershell小技巧之创建短网址

    短网址服务,可能很多朋友都已经不再陌生,特别是在微博应用中十分普遍,比如,当我们在腾讯、新浪微博发微博时有时发很长的网址连接,但由于微博只限制140个字,所以微博就自动把您发的长网址给转换成短网址了。今天我们来探讨下,如何用powershell来便捷的使用短网址
    2014-10-10
  • WMI入门教程之什么是WMI?

    WMI入门教程之什么是WMI?

    这篇文章主要介绍了WMI入门教程之什么是WMI?WMI有一组API,我们可以使用VBScript、PowerShell脚本还是利用C#的来访问WMI的类库,需要的朋友可以参考下
    2014-10-10
  • 探索PowerShell(十) 循环语句介绍

    探索PowerShell(十) 循环语句介绍

    本节所要讨论的内容的实质更多的偏向于程序设计方面,所以在此不做过多详细讲解,只针对PowerShell中的应用进行具体讲解
    2012-12-12
  • Windows Powershell强类型数组

    Windows Powershell强类型数组

    强类型数组可以理解为强制数据类型的数组,也就是一个数组里只包含一种数据类型,强制转换数组语法的优势就是如果使用分号代替逗号分隔值,PowerShell将每个值看作命令文本,PowerShell会执行它并且存储结果。
    2014-09-09
  • Powershell 获取特定的网页信息的代码

    Powershell 获取特定的网页信息的代码

    这篇文章主要介绍了Powershell 获取特定的网页信息的代码,需要的朋友可以参考下
    2015-10-10
  • Powershell的break、continue和return简单总结

    Powershell的break、continue和return简单总结

    这篇文章主要介绍了Powershell的break、continue和return简单总结,和其它语言中的作用相同,所以本文的总结比较短小,需要的朋友可以参考下
    2014-07-07
  • Powershell使用WINDOWS事件日志记录程序日志

    Powershell使用WINDOWS事件日志记录程序日志

    这篇文章主要介绍了Powershell使用WINDOWS事件日志记录程序日志,还可以分析你的日志和查询日志信息,需要的朋友可以参考下
    2014-07-07
  • PowerShell小技巧之添加远程防火墙规则

    PowerShell小技巧之添加远程防火墙规则

    本文主要介绍了将Windows Server 2012 Core的默认控制台设置成了PowerShell后,启用了远程桌面,然后使用PowerShell添加PowerShell远程防火墙规则。希望对大家能有所帮助。
    2014-09-09
  • PowerShell脚本写的文件.ps1文件介绍

    PowerShell脚本写的文件.ps1文件介绍

    这篇文章主要介绍了PowerShell脚本写的文件.ps1文件介绍,本文讲解了什么是“.ps1”文件、如何执行“.ps1”文件、执行策略 等知识,需要的朋友可以参考下
    2014-08-08
  • PowerShell 自动备份oracle并上传到ftp

    PowerShell 自动备份oracle并上传到ftp

    我这里有这样一个需求:有一个数据库,每天使用SQL Server Agent自动生成备份文件。然后,这个数据库非常重要,需要把每天的备份上传一个远程的FTP服务器上去。下面我们来看看如何使用Powershell来实现吧
    2015-08-08

最新评论