49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
using System;
|
|
using BankingBot.Contracts;
|
|
using OpenQA.Selenium;
|
|
|
|
namespace BankingBot
|
|
{
|
|
public class BrowserBot<T> : IBrowserBot, IDisposable
|
|
where T : IWebDriver
|
|
{
|
|
public IWebDriver WebDriver { get; private set; }
|
|
|
|
public BrowserBot()
|
|
{
|
|
WebDriver = (IWebDriver)Activator.CreateInstance(typeof(T));
|
|
}
|
|
|
|
#region IDisposable Support
|
|
private bool disposedValue = false; // To detect redundant calls
|
|
|
|
protected virtual void Dispose(bool disposing)
|
|
{
|
|
if (!disposedValue)
|
|
{
|
|
if (disposing)
|
|
{
|
|
WebDriver.Quit();
|
|
}
|
|
|
|
disposedValue = true;
|
|
}
|
|
}
|
|
|
|
// TODO: override a finalizer only if Dispose(bool disposing) above has code to free unmanaged resources.
|
|
// ~BrowserBot() {
|
|
// // Do not change this code. Put cleanup code in Dispose(bool disposing) above.
|
|
// Dispose(false);
|
|
// }
|
|
|
|
// This code added to correctly implement the disposable pattern.
|
|
public void Dispose()
|
|
{
|
|
// Do not change this code. Put cleanup code in Dispose(bool disposing) above.
|
|
Dispose(true);
|
|
// TODO: uncomment the following line if the finalizer is overridden above.
|
|
// GC.SuppressFinalize(this);
|
|
}
|
|
#endregion
|
|
}
|
|
}
|