New projct BrowserDriver infered to help with webscraping
This commit is contained in:
33
BrowserHelper/Driver/BrowserDriver.cs
Normal file
33
BrowserHelper/Driver/BrowserDriver.cs
Normal 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
|
||||
}
|
||||
40
BrowserHelper/Driver/DriverFixture.cs
Normal file
40
BrowserHelper/Driver/DriverFixture.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
9
BrowserHelper/Driver/IBrowserDriver.cs
Normal file
9
BrowserHelper/Driver/IBrowserDriver.cs
Normal file
@ -0,0 +1,9 @@
|
||||
using OpenQA.Selenium;
|
||||
|
||||
namespace BrowserHelper.Driver;
|
||||
|
||||
public interface IBrowserDriver
|
||||
{
|
||||
IWebDriver GetChromeDriver(bool headless = true);
|
||||
IWebDriver GetFirefoxDriver(bool headless = true);
|
||||
}
|
||||
10
BrowserHelper/Driver/IDriverFixture.cs
Normal file
10
BrowserHelper/Driver/IDriverFixture.cs
Normal file
@ -0,0 +1,10 @@
|
||||
using OpenQA.Selenium;
|
||||
|
||||
namespace BrowserHelper.Driver
|
||||
{
|
||||
public interface IDriverFixture
|
||||
{
|
||||
IWebDriver Driver { get; }
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user