「Selenium」前端 UI 自動化測試、爬蟲程式 最佳利器
一、介紹
「Selenium」讓瀏覽器自動化的工具,可運用於爬蟲程式、前端 UI 自動化測試、Web 應用程式管理..等,支援多種語言如 C#,Java,Perl,PHP,Python..等。範例程式將介紹如何使用 C# 語言運用 Selenium 撰寫 自動載圖程式(簡易爬蟲),讓應用程式開啟瀏覽器,前往 Google 圖片,下載 5 張 JPEG 圖檔。
二、Nuget 套件
- Selenium.WebDriver
- 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();
如下畫面圖三、建置執行檔
圖四、開啟執行檔資料夾
圖五、執行程式
圖六、執行結果
留言
張貼留言