C#使用Selenium右鍵儲存圖片
阿新 • • 發佈:2020-06-20
.Net Core使用Selenium自動化測試框架右鍵儲存圖片,Selenium相關操作點選跳轉
對於圖片的儲存,通常有倆種方式,第一種是獲取頁面中圖片的Url再下載,另一種方法是模擬滑鼠右鍵儲存圖片。本文實現第二種方式。
首先獲取目標圖片的Xpath,再通過Selenium通過Xpath進行元素定位,並將滑鼠移動這個元素模擬右鍵點選。
ChromeDriver chromeDriver= new ChromeDriver(); //開啟瀏覽器 chromeDriver.Manage().Window.Maximize(); chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10000); ...... var ele = chromeDriver.FindElementByXPath(xpath); Actions actions = new Actions(chromeDriver); actions.MoveToElement(ele).Perform(); actions.ContextClick(ele).Build().Perform();
下面關鍵的一步,模擬鍵盤輸入確認右鍵儲存以及回車輸入。本文專案中採用的是最新的.Net Core版本,對網上一些C#模擬鍵盤輸入的方式都未能成功。這裡介紹InputStimulator類庫,能夠實現鍵盤的輸入以及各種字串輸入操作。
var sim = new InputSimulator();
sim.Keyboard.KeyPress(VirtualKeyCode.VK_V).Sleep(1000).KeyPress(VirtualKeyCode.RETURN);
下面進行專案演示:
專案演示中的全部程式碼:
using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Interactions; using System; using WindowsInput; using WindowsInput.Native; namespace ZwDownLoad { class Program { static void Main(string[] args) { ChromeDriver chromeDriver = new ChromeDriver(@"G:\DownLoadFiles\"); chromeDriver.Manage().Window.Maximize(); chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(2000); chromeDriver.Navigate().GoToUrl("https://www.cnblogs.com/dlvguo/p/13122475.html"); System.Threading.Thread.Sleep(1000); var ele = chromeDriver.FindElementByXPath("//*[@id=\"cnblogs_post_body\"]/p[1]/img"); Actions actions = new Actions(chromeDriver); actions.MoveToElement(ele).Perform(); actions.ContextClick(ele).Build().Perform(); System.Threading.Thread.Sleep(2000); var sim = new InputSimulator(); sim.Keyboard.KeyPress(VirtualKeyCode.VK_V).Sleep(2000).TextEntry("測試圖片").Sleep(1000).KeyPress(VirtualKeyCode.RETURN); Console.Read(); } } }