Windows 系统自带的Internet Explore +加上PowerShell 即可搞定。
今天就分享下这几天自己写的几个小函数,欢迎拍砖:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
# # 打开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) } } |