軟體工程師的小事:到底要不要 Close

使用 .NET Core 與 Selenium 在 Ubuntu 操作 Chrome 瀏覽器

Selenium 現在也支援 .NET Core 平台了

已經支援一段時間的樣子了 ...

以下文章將紀錄使用 Ubuntu 搭配 .NET Core 執行 Selenium 進行瀏覽器簡單的自動化操作

本文章直接在 Ubuntu 桌面進行操作,擷取圖片皆為 Ubuntu 畫面

大部分內容為參考指定文章,請參閱下方「參考資料」
文章環境
Linux
Ubuntu 16.04 LTS Desktop
.NET Core
2.1.101
Selenium WebDriver
3.11.0
ChromeDriver
2.37
在 Ubuntu 進行開發

先從 Selenium 網站中取得 Selenium 的 ChromeDriver 應用程式

下載 Selenium 的 ChromeDriver 應用程式

https://sites.google.com/a/chromium.org/chromedriver/downloads



將下載後的檔案放到應用程式資料夾,本文章使用 .NET Core Console 應用程式

將 Selenium.WebDriver 套件加入參考

dotnet add package Selenium.WebDriver
出現 Permission denied 請確認執行此指令碼的權限

還要把 ChromeDriver 檔案 Include 到專案,在編譯的時候才會將檔案複製到輸出目錄中

因為不是使用 Visual Studio 所以自行編輯 *.csproj 的 XML 檔案

準備完成後來撰寫一個簡單的 Selenium 自動化指令碼

這個時候編譯沒問題但是在執行的時候會出現錯誤訊息

排除此問題的方法為將組件路徑設定到 Driver 的建構函式中

詳細問題原因請翻閱參考資料之 Selenium WebDriver + .NET Core 2.0- What Everyone Ought to Know 文章內容

將程式碼修改如下

重新編譯後並執行

Chrome 就會自動開啟並且顯示「自動化程式碼管理中」訊息

在瀏覽到 http://www.gogole.com.tw 網頁後自動關閉

在 Ubuntu 使用 Selenium 操作 Chrome 瀏覽器的應用程式就這樣完成了

結論

在 .NET Core 支援 Selenium 後,就不需要一定要 Windows 作業系統才可以執行了

Windows 作業系統授權 ...
補充

如果在 Ubuntu 安裝 Chrome 瀏覽器的時候會出現問題可以參考這篇文章
https://www.ubuntu-tw.org/modules/newbb/viewtopic.php?post_id=351720

參考資料

留言