Add project files.

This commit is contained in:
2022-01-26 20:15:57 +01:00
parent 7d4796fa9f
commit 74cb6f043a
15 changed files with 356 additions and 0 deletions

View File

@ -0,0 +1,28 @@
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using WebDriverManager;
using WebDriverManager.DriverConfigs.Impl;
namespace EATestFramework.Driver;
public class BrowserDriver : IBrowserDriver
{
public IWebDriver GetChromeDriver()
{
new DriverManager().SetUpDriver(new ChromeConfig());
return new ChromeDriver();
}
public IWebDriver GetFirefoxDriver()
{
new DriverManager().SetUpDriver(new FirefoxConfig());
return new FirefoxDriver();
}
}
public enum BrowserType
{
Chrome,
Firefox
}

View File

@ -0,0 +1,34 @@
using EATestFramework.Settings;
using OpenQA.Selenium;
namespace EATestFramework.Driver
{
public class DriverFixture : IDriverFixture
{
IWebDriver driver;
private readonly TestSettings _testSettings;
private readonly IBrowserDriver _browserDriver;
public DriverFixture(TestSettings testSettings, IBrowserDriver browserDriver)
{
_testSettings = testSettings;
_browserDriver = browserDriver;
driver = GetWebDriver();
}
public IWebDriver Driver => driver;
public IWebDriver GetWebDriver()
{
return _testSettings.BrowserType switch
{
BrowserType.Chrome => _browserDriver.GetChromeDriver(),
BrowserType.Firefox => _browserDriver.GetFirefoxDriver(),
_ => _browserDriver.GetChromeDriver()
};
}
}
}

View File

@ -0,0 +1,9 @@
using OpenQA.Selenium;
namespace EATestFramework.Driver;
public interface IBrowserDriver
{
IWebDriver GetChromeDriver();
IWebDriver GetFirefoxDriver();
}

View File

@ -0,0 +1,10 @@
using OpenQA.Selenium;
namespace EATestFramework.Driver
{
public interface IDriverFixture
{
IWebDriver Driver { get; }
}
}

View File

@ -0,0 +1,19 @@
using EATestFramework.Settings;
using Microsoft.Extensions.DependencyInjection;
namespace EATestFramework.Driver;
public static class WebDriverInitializerExtension
{
public static IServiceCollection UseWebDriverInitializer(
this IServiceCollection services,
BrowserType browserType)
{
services.AddSingleton(new TestSettings
{
BrowserType = browserType
});
return services;
}
}