PowerShell小技巧实现IE Web自动化

所属分类: 脚本专栏 / PowerShell 阅读数: 1919
收藏 0 赞 0 分享

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隐藏不显示窗口的多种方法,本文讲解了启动PowerShell时隐藏自己的窗口、在PowerShell启动其它进程时隐藏窗口、使用PowerShell隐藏其它进程的窗口三种方法,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell启用winrm失败:拒绝访问 0x80070005 -2147024891

这篇文章主要介绍了PowerShell启用winrm失败:拒绝访问 0x80070005 -2147024891,本文给出了详细的排查步骤和解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Powershell目录文件夹管理权限的继承和指定方法

这篇文章主要介绍了Powershell目录文件夹管理权限的继承和指定方法,本文给出了创建文件夹、获取当前权限、添加新的权限、添加管理员权限等,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell查看本机文件关联程序和默认打开程序的方法

这篇文章主要介绍了PowerShell查看本机文件关联程序和默认打开程序的方法,本文给出了查看方法,同时给出了一份读取结果,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell脚本反引号用法实例:随时随地给代码换行

这篇文章主要介绍了PowerShell脚本反引号用法实例:随时随地给代码换行,在遇到一些超长代码行时非常有用,一般编程代码一行的字符数不超过80个哦,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell 数组的多种录入方法

这篇文章主要介绍了PowerShell 数组的多种录入方法,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell String对象方法小结

这篇文章主要介绍了PowerShell String对象方法,需要的朋友可以参考下
收藏 0 赞 0 分享

使用PowerShell获取当前主机内存使用量和总量的方法

这篇文章主要介绍了使用PowerShell获取当前主机内存使用量和总量的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell批量修改AD用户密码属性的代码

这篇文章主要介绍了PowerShell批量修改AD用户密码属性的代码,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell 自动备份oracle并上传到ftp

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