Backend/e-suite.Automation.UITests/ESuite.UI.E2E/Helpers/WebDriverHelper.cs
2026-01-20 21:50:10 +00:00

69 lines
1.8 KiB
C#

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace ESuite.UI.E2E.Helpers
{
public static class WebDriverHelper
{
private static IWebDriver? driver;
private readonly static ConfigHelper configHelper = new();
public static void InitializeWebDriver()
{
driver = CreateWebDriverWithDefaultResolution();
}
private static IWebDriver CreateWebDriverWithDefaultResolution()
{
ChromeOptions options = new();
options.AddArgument("window-size=1920,1080");
options.AddArgument("--enable-javascript");
if (configHelper.HeadlessMode)
{
options.AddArgument("headless");
options.AddArgument("disable-gpu");
}
else
{
options.AddArgument("--start-maximized");
}
driver = new ChromeDriver(options);
return driver;
}
public static IWebDriver GetWebDriver()
{
driver ??= CreateWebDriverWithDefaultResolution();
return driver;
}
public static byte[]? CaptureScreenshot()
{
driver ??= GetWebDriver();
try
{
var screenshot = ((ITakesScreenshot)driver).GetScreenshot();
return screenshot.AsByteArray;
}
catch (Exception ex)
{
Console.WriteLine($"Error capturing screenshot: {ex.Message}");
return null;
}
}
public static void QuitWebDriver()
{
if (driver != null)
{
driver.Quit();
driver = null;
}
}
}
}