diff --git a/weehawken/README.md b/README.md similarity index 100% rename from weehawken/README.md rename to README.md diff --git a/weehawken.sln b/weehawken.sln index 6a630ce..b404d10 100644 --- a/weehawken.sln +++ b/weehawken.sln @@ -3,6 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "weehawken", "weehawken\weehawken.csproj", "{DFE29179-A415-483E-B483-B9D21127CD14}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A739F328-98F9-4F32-8027-B12E993B8375}" + ProjectSection(SolutionItems) = preProject + README.md = README.md + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/weehawken/Harness/BrowserDriver.cs b/weehawken/Harness/BrowserDriver.cs index 3216318..8dc4e9b 100644 --- a/weehawken/Harness/BrowserDriver.cs +++ b/weehawken/Harness/BrowserDriver.cs @@ -4,6 +4,8 @@ using OpenQA.Selenium.Edge; using OpenQA.Selenium.Firefox; using OpenQA.Selenium.Remote; using OpenQA.Selenium.Safari; +using WebDriverManager; +using WebDriverManager.DriverConfigs.Impl; namespace weehawken { @@ -18,9 +20,9 @@ namespace weehawken case "firefox": return GetFirefox(headless); case "safari": - return getSafari(false); //headless not supported + return GetSafari(false); //headless not supported case "edge": - return getEdge(headless); //headless only available in Selenium 4 + return GetEdge(headless); //headless only available in Selenium 4 default: throw new ArgumentException("Invalid browser specified"); } @@ -53,14 +55,34 @@ namespace weehawken return driver; } - private static RemoteWebDriver getSafari(bool headless) + private static RemoteWebDriver GetEdge(bool headless) { - return new SafariDriver(); + //new DriverManager().SetUpDriver(new EdgeConfig()); + EdgeOptions opts = new EdgeOptions(); + if (headless) + { + opts.AddArguments("headless"); + } + opts.AcceptInsecureCertificates = true; + RemoteWebDriver driver = new EdgeDriver(opts); + return driver; } - private static RemoteWebDriver getEdge(bool headless) + private static RemoteWebDriver GetSafari(bool headless) { - return new EdgeDriver(); + String os = Environment.OSVersion.ToString(); + if (os.Contains("Win")){ + throw new NotSupportedException("Safari is not supported on Windows"); + } + //SafariOptions opts = new SafariOptions(); + if (headless) + { + throw new NotSupportedException("Safari does not support headless operation"); + } + //opts.AcceptInsecureCertificates = true; + RemoteWebDriver driver = new SafariDriver(); + driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20); + return driver; } } } diff --git a/weehawken/Tests/BrowserTests.cs b/weehawken/Tests/BrowserTests.cs index 9dd12bb..1c9b4a0 100644 --- a/weehawken/Tests/BrowserTests.cs +++ b/weehawken/Tests/BrowserTests.cs @@ -51,7 +51,34 @@ namespace weehawken RemoteWebElement results = (RemoteWebElement)driver.FindElementByPartialLinkText("Monster cereal"); Assert.NotNull(results); - driver.Quit(); + } + + [Test] + [Ignore("Safari implementation is broken in .Net")] + public void SafariTest() + { + Console.WriteLine("Safari Test"); + driver = BrowserDriver.GetDriver("safari", false); //no headless for safari + driver.Navigate().GoToUrl(url); + driver.FindElementByXPath("//input[@id='search_form_input_homepage']") + .SendKeys("frankenberries" + Keys.Enter); + RemoteWebElement results = + (RemoteWebElement)driver.FindElementByPartialLinkText("Monster cereal"); + Assert.NotNull(results); + } + + [Test] + [Ignore("Edge Implementation is broken in .Net for MAC")] + public void EdgeTest() + { + Console.WriteLine("Edge Test"); + //driver = BrowserDriver.GetDriver("edge", true); + driver.Navigate().GoToUrl(url); + driver.FindElementByXPath("//input[@id='search_form_input_homepage']") + .SendKeys("frankenberries" + Keys.Enter); + RemoteWebElement results = + (RemoteWebElement)driver.FindElementByPartialLinkText("Monster cereal"); + Assert.NotNull(results); } } } \ No newline at end of file diff --git a/weehawken/drivers/msedgedriver b/weehawken/drivers/msedgedriver new file mode 100755 index 0000000..46f4f1c Binary files /dev/null and b/weehawken/drivers/msedgedriver differ diff --git a/weehawken/weehawken.csproj b/weehawken/weehawken.csproj index 843d3e2..397a346 100644 --- a/weehawken/weehawken.csproj +++ b/weehawken/weehawken.csproj @@ -18,6 +18,7 @@ + @@ -28,5 +29,6 @@ +