46 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using File_Watcher.Models;
 | |
| #if Selenium
 | |
| using OpenQA.Selenium;
 | |
| using OpenQA.Selenium.Edge;
 | |
| #endif
 | |
| 
 | |
| namespace File_Watcher.Helpers;
 | |
| 
 | |
| internal static partial class SeleniumHelper
 | |
| {
 | |
| 
 | |
|     // <PackageReference Include="Selenium.WebDriver" Version="4.31.0" />
 | |
|     // <PackageReference Include="Selenium.WebDriver.MSEdgeDriver" Version="135.0.3179.85" />
 | |
| 
 | |
|     internal static bool HyperTextMarkupLanguageToPortableNetworkGraphics(AppSettings appSettings, ILogger<Worker> logger)
 | |
|     {
 | |
|         if (!string.IsNullOrEmpty(appSettings.SeleniumConfiguration.UniformResourceLocator))
 | |
|             logger.LogInformation("This helper is disabled!");
 | |
| #if Selenium
 | |
|         EdgeOptions edgeOptions = new();
 | |
|         foreach (string edgeOption in appSettings.SeleniumConfiguration.EdgeOptions)
 | |
|             edgeOptions.AddArgument(edgeOption);
 | |
|         EdgeDriver edgeDriver = new(edgeOptions);
 | |
|         string outputFile = Path.Combine(appSettings.SeleniumConfiguration.DestinationDirectory, $"{DateTime.Now:yyyy-MM-dd;HH-mi-ss-fff}.png");
 | |
|         try
 | |
|         {
 | |
|             edgeDriver.Navigate().GoToUrl(appSettings.SeleniumConfiguration.UniformResourceLocator);
 | |
| #pragma warning disable CS8602, CS8604
 | |
|             int fullWidth = int.Parse(edgeDriver.ExecuteScript("return document.body.parentNode.scrollWidth").ToString());
 | |
|             int fullHeight = int.Parse(edgeDriver.ExecuteScript("return document.body.parentNode.scrollHeight").ToString());
 | |
| #pragma warning restore CS8602, CS8604
 | |
|             edgeDriver.Manage().Window.Size = new(fullWidth, fullHeight);
 | |
|             Screenshot screenshot = edgeDriver.GetScreenshot();
 | |
|             screenshot.SaveAsFile(outputFile);
 | |
|         }
 | |
|         catch (Exception ex)
 | |
|         {
 | |
|             logger.LogError(ex, ex.Message);
 | |
|         }
 | |
|         edgeDriver.Close();
 | |
| #endif
 | |
|         return true;
 | |
|     }
 | |
| 
 | |
| }
 |