前提环境
所使用的powershell和Selenium模块的版本:
PS C:\Users\Administrator> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.19041.1682
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.1682
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
PS C:\Users\Administrator> Get-InstalledModule -name selenium
Version Name Repository Description
------- ---- ---------- -----------
3.0.1 Selenium PSGallery Web automation using the Selenium Web Driver
PS C:\Users\Administrator> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
PS C:\Users\Administrator> Get-ExecutionPolicy -list
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
Selenium模块的安装命令如下:
Install-Module -Name Selenium
Google chrome的webdriver下载页面:
https://chromedriver.chromium.org/downloads
Microsoft edge的webdriver下载页面:
https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/
下载过后的webdriver放置位置:
#Google chrome webdriver
#将chromedriver.exe放置到以下位置
C:\Program Files\WindowsPowerShell\Modules\Selenium\3.0.1\assemblies
#Microsoft edge webdriver
#需要将msedgedriver.exe名称改为MicrosoftWebDriver.exe后放置到以下位置
C:\Program Files\WindowsPowerShell\Modules\Selenium\3.0.1\assemblies
常用命令
#使用Chrome
$Driver = Start-SeChrome
#使用Edge
$Driver = Start-SeEdge
#使用-Headless可选项将隐藏浏览器界面
$Driver = Start-SeChrome -Headless
#打开指定<URL>网页
Enter-SeUrl "<URL>" -Driver $Driver
#指定ID
$Element = Find-SeElement -Driver $Driver -Id "<ID>"
#指定ClassName
$Element = Find-SeElement -Driver $Driver -ClassName "<ClassName>"
#指定TagName(下记命令用于抽出所有名为input的标签)
$Element = Find-SeElement -Driver $Driver -TagName input
#指定XPath
$Element = Find-SeElement -Driver $Driver -XPath "<XPath>"
#填入内容<text>
Send-SeKeys -Element $Element -Keys "<text>"
#单击,有下记两种方式
$Element.Click()
$Element | Invoke-SeClick -Driver $Driver
#使用JavaScript单击 (上述两种方法无法使用的时候)
$Element | Invoke-SeClick -JavaScriptClick -Driver $Driver
#截图
$Screenshot = Invoke-SeScreenshot -Target $Driver
Save-SeScreenshot -Screenshot $Screenshot -Path ./test.png
#结束webdriver进程
Stop-SeDriver -Driver $Driver