「Selenium」前端 UI 自動化測試、爬蟲程式 最佳利器

一、介紹

「Selenium」讓瀏覽器自動化的工具,可運用於爬蟲程式、前端 UI 自動化測試、Web 應用程式管理..等,支援多種語言如 C#,Java,Perl,PHP,Python..等。
範例程式將介紹如何使用 C# 語言運用 Selenium 撰寫 自動載圖程式(簡易爬蟲),讓應用程式開啟瀏覽器,前往 Google 圖片,下載 5 張 JPEG 圖檔。

二、Nuget 套件

  1. Selenium.WebDriver
  2. Selenium.WebDriver.ChromeDriver

三、教學步驟

圖一、安裝 Selenium 套件。

圖二、貼上範例程式
var driver = new ChromeDriver();

//瀏覽器 轉址至 Google圖片
driver.Url = @"https://www.google.com.tw/imghp?hl=zh-TW";

//輸入關鍵字 "Selenium"
var searchInput = driver.FindElementByCssSelector(@".gLFyf");
searchInput.SendKeys("Selenium");

//按下 Enter
searchInput.SendKeys(Keys.Enter);

//抓取圖片清單
var imgTags = driver.FindElementsByTagName("img").ToList();

//取得 5張 jpeg 圖片
var images = imgTags.Select(x => x.GetAttribute("src")).Where(x => x!=null && x.StartsWith("data:image/jpeg;base64,")).Take(5).ToList();

//下載圖片
foreach(var image in images)
{
    byte[] bytes = Convert.FromBase64String(image.Replace("data:image/jpeg;base64,", ""));
    using (var ms = new MemoryStream(bytes))
    using (var jpg = Image.FromStream(ms))
    {
        jpg.Save($@"{Guid.NewGuid().ToString().Replace("-","")}.jpg", ImageFormat.Jpeg);
    }
}

//瀏覽器 關閉
driver.Close();
//結束 driver
driver.Quit();
如下畫面


圖三、建置執行檔


圖四、開啟執行檔資料夾


圖五、執行程式

圖六、執行結果

四、參考

  1. Selenium 官網

留言

這個網誌中的熱門文章

使用「Visual Studio 2019」建置 Windows 服務

使用「IMAP」讀取「Gmail」信件的主旨

「SonarLint」程式碼品質最佳利器

「Bonobo Git Server」安裝

「Apache Maven」安裝步驟

快速的套件管理工具「Yarn」

使用「Visual Studio 2019」進行網站負載測試

如何取得 FaceBook 的「應用程式編號」、「應用程式密鑰」。

在Visual Studio 2019 使用 Subversion 的客服端工具「AnkhSVN2019」

「PicPick」 好用的截圖編輯工具