disk-info-helper

selenium-helper (Not fully tested)

sync-helper (Not fully tested)
This commit is contained in:
2025-06-23 11:16:17 -07:00
parent e50a90f0fc
commit 97797fc440
15 changed files with 807 additions and 23 deletions

45
Helpers/SeleniumHelper.cs Normal file
View File

@ -0,0 +1,45 @@
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;
}
}