New projct BrowserDriver infered to help with webscraping

This commit is contained in:
2022-02-01 21:15:31 +01:00
parent 5e42d91c1e
commit 5f0c4ef990
17 changed files with 472 additions and 649 deletions

View File

@ -0,0 +1,33 @@
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using WebDriverManager;
using WebDriverManager.DriverConfigs.Impl;
namespace BrowserHelper.Driver;
public class BrowserDriver : IBrowserDriver
{
public IWebDriver GetChromeDriver(bool headless = true)
{
new DriverManager().SetUpDriver(new ChromeConfig());
ChromeOptions options = new ChromeOptions();
if (headless)
options.AddArguments("--headless");
return new ChromeDriver(options);
}
public IWebDriver GetFirefoxDriver(bool headless = true)
{
new DriverManager().SetUpDriver(new FirefoxConfig());
FirefoxOptions options = new FirefoxOptions();
if (headless)
options.AddArguments("--headless");
return new FirefoxDriver(options);
}
}
public enum BrowserType
{
Chrome,
Firefox
}

View File

@ -0,0 +1,40 @@
using BrowserHelper.Settings;
using OpenQA.Selenium;
using System;
namespace BrowserHelper.Driver
{
public class DriverFixture : IDriverFixture, IDisposable
{
IWebDriver driver;
private readonly TestSettings _testSettings;
private readonly IBrowserDriver _browserDriver;
public DriverFixture(TestSettings testSettings, IBrowserDriver browserDriver)
{
_testSettings = testSettings;
_browserDriver = browserDriver;
driver = GetWebDriver();
driver.Navigate().GoToUrl(_testSettings.ApplicationUrl);
}
public IWebDriver Driver => driver;
public IWebDriver GetWebDriver()
{
return _testSettings.BrowserType switch
{
BrowserType.Chrome => _browserDriver.GetChromeDriver(_testSettings.Headless),
BrowserType.Firefox => _browserDriver.GetFirefoxDriver(_testSettings.Headless),
_ => _browserDriver.GetChromeDriver()
};
}
public void Dispose()
{
driver.Quit();
}
}
}

View File

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

View File

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