diff --git a/weehawken/BrowserDriver.cs b/weehawken/BrowserDriver.cs
new file mode 100644
index 0000000..2f6523f
--- /dev/null
+++ b/weehawken/BrowserDriver.cs
@@ -0,0 +1,66 @@
+using System;
+using OpenQA.Selenium.Chrome;
+using OpenQA.Selenium.Edge;
+using OpenQA.Selenium.Firefox;
+using OpenQA.Selenium.Remote;
+using OpenQA.Selenium.Safari;
+
+namespace weehawken
+{
+ public static class BrowserDriver
+ {
+ public static RemoteWebDriver GetDriver(string browser, bool headless)
+ {
+ switch (browser)
+ {
+ case "chrome":
+ return GetChrome(headless);
+ case "firefox":
+ return GetFirefox(headless);
+ case "safari":
+ return getSafari(headless);
+ case "edge":
+ return getEdge(headless);
+ default:
+ throw new ArgumentException("Invalid browser specified");
+ }
+ }
+
+
+ private static RemoteWebDriver GetChrome(bool headless)
+ {
+ ChromeOptions opts = new ChromeOptions();
+ if (headless)
+ {
+ opts.AddArguments("headless");
+ }
+ opts.AcceptInsecureCertificates = true;
+ RemoteWebDriver driver = new ChromeDriver(opts);
+ driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
+ return driver;
+ }
+
+ private static RemoteWebDriver GetFirefox(bool headless)
+ {
+ FirefoxOptions fopts = new FirefoxOptions();
+ if (headless)
+ {
+ fopts.AddArguments("--headless");
+ }
+ fopts.AcceptInsecureCertificates = true;
+ RemoteWebDriver driver = new FirefoxDriver(fopts);
+ driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
+ return driver;
+ }
+
+ private static RemoteWebDriver getSafari(bool headless)
+ {
+ return new SafariDriver();
+ }
+
+ private static RemoteWebDriver getEdge(bool headless)
+ {
+ return new EdgeDriver();
+ }
+ }
+}
diff --git a/weehawken/BrowserTests.cs b/weehawken/BrowserTests.cs
index 4177e0b..a961356 100644
--- a/weehawken/BrowserTests.cs
+++ b/weehawken/BrowserTests.cs
@@ -1,7 +1,6 @@
using System;
using NUnit.Framework;
using OpenQA.Selenium;
-using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Remote;
@@ -9,56 +8,51 @@ namespace weehawken
{
public class Tests
{
- ChromeDriver chromeDriver;
- FirefoxDriver firefoxDriver;
- String url = "https://duckduckgo.com/";
+ private String url;
+ private RemoteWebDriver driver;
[SetUp]
public void Setup()
{
Console.WriteLine("Beginning Test");
+ url = "https://duckduckgo.com/";
}
[TearDown]
public void TearDown()
{
+ driver.Quit();
Console.WriteLine("End Test");
+
}
[Test]
public void ChromeTest()
{
Console.WriteLine("Chrome Test");
- ChromeOptions copts = new ChromeOptions();
- copts.AddArguments("headless");
- chromeDriver = new ChromeDriver(copts);
- chromeDriver.Navigate().GoToUrl(url);
+ driver = BrowserDriver.GetDriver("chrome", true);
+ driver.Navigate().GoToUrl(url);
RemoteWebElement searchBox =
- (RemoteWebElement)chromeDriver.FindElementByXPath("//input[@id='search_form_input_homepage']");
+ (RemoteWebElement)driver.FindElementByXPath("//input[@id='search_form_input_homepage']");
searchBox.SendKeys("frankenberries");
searchBox.SendKeys(Keys.Enter);
RemoteWebElement results =
- (RemoteWebElement)chromeDriver.FindElementByPartialLinkText("Monster cereal");
+ (RemoteWebElement)driver.FindElementByPartialLinkText("Monster cereal");
Assert.NotNull(results);
- chromeDriver.Quit();
}
[Test]
public void FirefoxTest()
{
Console.WriteLine("Firefox Test");
- FirefoxOptions fopts = new FirefoxOptions();
- fopts.AddArguments("--headless");
- firefoxDriver = new FirefoxDriver(fopts);
- firefoxDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(3);
- firefoxDriver.Navigate().GoToUrl(url);
- firefoxDriver.FindElementByXPath("//input[@id='search_form_input_homepage']")
+ driver = BrowserDriver.GetDriver("firefox", true);
+ driver.Navigate().GoToUrl(url);
+ driver.FindElementByXPath("//input[@id='search_form_input_homepage']")
.SendKeys("frankenberries" + Keys.Enter);
-
RemoteWebElement results =
- (RemoteWebElement)firefoxDriver.FindElementByPartialLinkText("Monster cereal");
+ (RemoteWebElement)driver.FindElementByPartialLinkText("Monster cereal");
Assert.NotNull(results);
- firefoxDriver.Quit();
+ driver.Quit();
}
}
}
\ No newline at end of file
diff --git a/weehawken/README.md b/weehawken/README.md
new file mode 100644
index 0000000..58bae2c
--- /dev/null
+++ b/weehawken/README.md
@@ -0,0 +1,4 @@
+# WEEHAWKEN C# TEST FRAMEWORK
+
+This framework is basically a clone port of my java framework. It's a work in progress.
+
diff --git a/weehawken/weehawken.csproj b/weehawken/weehawken.csproj
index 20d7d02..b6043e8 100644
--- a/weehawken/weehawken.csproj
+++ b/weehawken/weehawken.csproj
@@ -10,8 +10,8 @@
-
-
+
+