Post

Chạy Selenium trong môi trường Windows PowerShell

Tải về

Tải về 2 gói .nupkgSelenium.WebDriverSelenium.Support từ trang nuget.org lần lượt bên dưới:

1
2
https://www.nuget.org/packages/Selenium.WebDriver
https://www.nuget.org/packages/Selenium.Support

Tiếp theo là ChromeDriverGeckoDriver tùy vào bạn sử dụng trình duyệt Chrome hay Firefox.

1
2
http://chromedriver.storage.googleapis.com/index.html
https://github.com/mozilla/geckodriver/releases/

Nhớ chọn tệp tin .exe trùng với số hiệu phiên bản của Chrome hoặc Firefox đã được cài đặt.

Cài đặt

Tạo một thư mục trống, ví dụ là SeleniumPowerShellTest:

1
D:\SeleniumPowerShellTest

Sao chép tệp tin WebDriver.dll từ thư mục lib của gói .nupkg sang thư mục đã tạo. Nếu bạn đã cài .NET có số hiệu phiên bản là 4.0 thì sử dụng tệp tin WebDriver.dll có trong thư mục 4.0.
Sao chép tệp tin WebDriver.Support.dll từ thư mục lib của gói .nupkg sang thư mục đã tạo. Nếu bạn đã cài .NET có số hiệu phiên bản là 4.0 thì sử dụng tệp tin WebDriver.Support.dll có trong thư mục 4.0.
Di chuyển tệp tin chromedriver.exe hoặc geckodriver.exe vào thư mục SeleniumPowerShellTest tùy vào trường hợp sử dụng trình duyệt Chrome hoặc Firefox. Tạo một tệp tin PowerShell, ví dụ TestSPS.ps1.
Mở tệp tin TestSPS.ps1 bằng chương trình Windows PowerShell ISE hoặc Notepad++ hoặc Notepad hoặc bất kỳ chương trình hỗ trợ gõ mã nào.

Khai báo

Sau khi mở tệp tin TestSPS.ps1 lên, hãy khái báo (thiết lập môi trường) Selenium trong PowerShell.
Thiết lập cho thư mục SeleniumPowerShellTest:

1
$workingPath = 'D:\SeleniumPowerShellTest'

Thiết lập môi trường để PowerShell có thể làm việc với Selenium, có 3 kiểu khác nhau, chọn cách nào cũng được:

1
2
Add-Type -Path "$($workingPath)\WebDriver.dll"
Add-Type -Path "$($workingPath)\WebDriver.Support.dll"
1
2
Import-Module "$($workingPath)\WebDriver.dll"
Import-Module "$($workingPath)\WebDriver.Support.dll"
1
2
[System.Reflection.Assembly]::LoadFrom("$($workingPath)\WebDriver.dll")
[System.Reflection.Assembly]::LoadFrom("$($workingPath)\WebDriver.Support.dll")

Tạo tùy chọn

Tùy chọn (options) cho trình duyệt khi cần dùng, không dùng thì không cần thêm vào.

1
$options = New-Object OpenQA.Selenium.Chrome.ChromeOptions
1
$options = New-Object OpenQA.Selenium.Firefox.FirefoxOptions

Tùy chọn không hiển thị giao diện của trình duyệt.

1
options.addArguments("--headless")

Selenium sẽ không chạy trực tiếp trên trình duyệt Chrome hoặc Firefox đã được cài đặt. Vì vậy, cần tạo một phiên bản mới để Selenium làm việc.

1
$driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($options)
1
$driver = New-Object OpenQA.Selenium.Firefox.FirefoxDriver($options)

Khởi tạo Implicit Wait. Ở đây là 29 giây chờ để trang/thành phần/vân vân tải hoàn tất.

1
$driver.Manage().Timeouts().ImplicitWait = [TimeSpan]::FromSeconds(29)

Lệnh Explicit Wait đơn giản, dễ dùng:

1
Start-Sleep -Seconds 5

Khởi tạo trình duyệt

Để khởi động trình duyệt mới được chạy bởi Selenium thì chỉ cần sử dụng câu lệnh đơn giản:

1
$driver

Nhưng thường được kết hợp bằng cách duyệt tới một địa chỉ cụ thể:

1
$driver.Navigate().GoToURL('https://vegetaz.github.io')

Chạy

Để chạy được tệp tin PowerShell, cần mở PowerShell trong thư mục SeleniumPowerShellTest, hoặc sử dụng lệnh cd để đi đến. Gõ như bên dưới và nhấn Enter là được.

1
.\TestSPS.ps1

Thoát

Sau khi truy cập đến đường dẫn đã được thiết lập và thực hiện các tệp lệnh đã được khai báo hoàn tất. Có thể tiến hành đóng/tắt/thoát trình duyệt.

1
$driver.Close()
1
$driver.Quit()
1
$driver.Dispose()

Đọc thêm:

This post is licensed under CC BY 4.0 by the author.