欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PowerShell小技巧实现IE Web自动化

程序员文章站 2022-07-06 13:55:03
windows 系统自带的internet explore +加上powershell 即可搞定。 今天就分享下这几天自己写的几个小函数,欢迎拍砖: # #...

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)
 }
}