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