public async Task StartAsync() { Server.PayTester.NoCSP = true; await Server.StartAsync(); var windowSize = (Width : 1200, Height : 1000); var builder = new ConfigurationBuilder(); builder.AddUserSecrets("AB0AC1DD-9D26-485B-9416-56A33F268117"); var config = builder.Build(); // Run `dotnet user-secrets set RunSeleniumInBrowser true` to run tests in browser var runInBrowser = config["RunSeleniumInBrowser"] == "true"; // Reset this using `dotnet user-secrets remove RunSeleniumInBrowser` var chromeDriverPath = config["ChromeDriverDirectory"] ?? (Server.PayTester.InContainer ? "/usr/bin" : Directory.GetCurrentDirectory()); var options = new ChromeOptions(); if (!runInBrowser) { options.AddArguments("headless"); } options.AddArguments($"window-size={windowSize.Width}x{windowSize.Height}"); options.AddArgument("shm-size=2g"); options.AddArgument("start-maximized"); if (Server.PayTester.InContainer) { // Shot in the dark to fix https://stackoverflow.com/questions/53902507/unknown-error-session-deleted-because-of-page-crash-from-unknown-error-cannot options.AddArgument("--disable-dev-shm-usage"); Driver = new OpenQA.Selenium.Remote.RemoteWebDriver(new Uri("http://selenium:4444/wd/hub"), new RemoteSessionSettings(options)); var containerIp = File.ReadAllText("/etc/hosts").Split('\n', StringSplitOptions.RemoveEmptyEntries).Last() .Split('\t', StringSplitOptions.RemoveEmptyEntries)[0].Trim(); TestLogs.LogInformation($"Selenium: Container's IP {containerIp}"); ServerUri = new Uri(Server.PayTester.ServerUri.AbsoluteUri.Replace($"http://{Server.PayTester.HostName}", $"http://{containerIp}", StringComparison.OrdinalIgnoreCase), UriKind.Absolute); } else { var cds = ChromeDriverService.CreateDefaultService(chromeDriverPath); cds.EnableVerboseLogging = true; cds.Port = Utils.FreeTcpPort(); cds.HostName = "127.0.0.1"; cds.Start(); Driver = new ChromeDriver(cds, options, // A bit less than test timeout TimeSpan.FromSeconds(50)); ServerUri = Server.PayTester.ServerUri; } Driver.Manage().Window.Maximize(); TestLogs.LogInformation($"Selenium: Using {Driver.GetType()}"); TestLogs.LogInformation($"Selenium: Browsing to {ServerUri}"); TestLogs.LogInformation($"Selenium: Resolution {Driver.Manage().Window.Size}"); GoToRegister(); Driver.AssertNoError(); }
public void goHomeHCADev(bool useCredentials) { AutomationCore.base_tests.BaseTest.WriteReport("Loggin into sbx-im.healthtrustpg.com..."); OpenQA.Selenium.Remote.RemoteWebDriver rwd = ((OpenQA.Selenium.Remote.RemoteWebDriver)browser.Native); rwd.Manage().Cookies.DeleteAllCookies(); SuperTest.SessConfiguration.AppHost = "http://sbx-im.healthtrustpg.com"; rwd.Manage().Window.Size = new Size(800, 600); rwd.Manage().Window.Maximize(); browser.Visit("http://sbx-im.healthtrustpg.com/"); HeaderLoginLink.Click(); HpgAssert.False(browser.HasDialog(""), "Verify no dialog is present"); HpgAssert.Contains(pageHeader.Text, "Home Page", "Verify 'Home Page' is loaded"); }
public void goHomeHCADev(string username, string password) { AutomationCore.base_tests.BaseTest.WriteReport("Loggin into sbx-im.healthtrustpg.com..."); OpenQA.Selenium.Remote.RemoteWebDriver rwd = ((OpenQA.Selenium.Remote.RemoteWebDriver)browser.Native); rwd.Manage().Cookies.DeleteAllCookies(); SuperTest.SessConfiguration.AppHost = "http://sbx-im.healthtrustpg.com"; rwd.Manage().Window.Size = new Size(800, 600); rwd.Manage().Window.Maximize(); browser.Visit("http://sbx-im.healthtrustpg.com/Account/Login"); if (rwd.Capabilities.BrowserName.ToLower().Contains("internet")) { DateTime exitTime = DateTime.Now.AddMinutes(15); while (DateTime.Now <= exitTime) { //if (browser.HasDialog("")) if (true) { SuperTest.WriteReport("Enter credentials"); SendKeys.SendWait(username); System.Threading.Thread.Sleep(2000); SendKeys.SendWait("{TAB}"); System.Threading.Thread.Sleep(2000); SendKeys.SendWait(password); System.Threading.Thread.Sleep(2000); SendKeys.SendWait("{ENTER}"); } if (!browser.HasDialog("")) { break; } } } else { SuperTest.WriteReport("Enter credentials"); System.Threading.Thread.Sleep(10000); SendKeys.SendWait(username); System.Threading.Thread.Sleep(2000); SendKeys.SendWait("{TAB}"); System.Threading.Thread.Sleep(2000); SendKeys.SendWait(password); System.Threading.Thread.Sleep(2000); SendKeys.SendWait("{ENTER}"); } HpgAssert.False(browser.HasDialog(""), "Verify no dialog is present"); HpgAssert.Contains(pageHeader.Text, "Home Page", "Verify 'Home Page' is loaded"); }
private IWebDriver getCurrentDriver() { OpenQA.Selenium.Remote.RemoteWebDriver driver = null; switch (_browserType) { case API.Enumerations.BrowserType.InternetExplorer: driver = new OpenQA.Selenium.IE.InternetExplorerDriver(); break; case API.Enumerations.BrowserType.Firefox: driver = new OpenQA.Selenium.Firefox.FirefoxDriver(); break; case API.Enumerations.BrowserType.Chrome: driver = new OpenQA.Selenium.Chrome.ChromeDriver(); break; } driver.Manage().Cookies.DeleteAllCookies(); return(driver); }
public static Uri GetExecutorURLFromDriver(OpenQA.Selenium.Remote.RemoteWebDriver driver) { var executorField = typeof(OpenQA.Selenium.Remote.RemoteWebDriver) .GetField("executor", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); object executor = executorField.GetValue(driver); var internalExecutorField = executor.GetType() .GetField("internalExecutor", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); object internalExecutor = internalExecutorField.GetValue(executor); //executor.CommandInfoRepository var remoteServerUriField = internalExecutor.GetType() .GetField("remoteServerUri", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); var remoteServerUri = remoteServerUriField.GetValue(internalExecutor) as Uri; return(remoteServerUri); }
public void loginIdeaManagement(string baseURL = "http://sbx-im.healthtrustpg.com", string username = "", string password = "") { AutomationCore.base_tests.BaseTest.WriteReport("Loggin into " + baseURL + "..."); OpenQA.Selenium.Remote.RemoteWebDriver rwd = ((OpenQA.Selenium.Remote.RemoteWebDriver)browser.Native); rwd.Manage().Cookies.DeleteAllCookies(); SuperTest.SessConfiguration.AppHost = baseURL; rwd.Manage().Window.Size = new Size(800, 600); System.Threading.Thread.Sleep(2000); rwd.Manage().Window.Maximize(); if (!string.IsNullOrEmpty(username)) { browser.Visit(baseURL + "/Account/Login"); if (rwd.Capabilities.BrowserName.ToLower().Contains("internet")) { DateTime exitTime = DateTime.Now.AddMinutes(15); while (DateTime.Now <= exitTime) { //if (browser.HasDialog("")) if (true) { SuperTest.WriteReport("Enter credentials into " + rwd.Capabilities.BrowserName); SendKeys.SendWait(username); System.Threading.Thread.Sleep(2000); SendKeys.SendWait("{TAB}"); System.Threading.Thread.Sleep(2000); if (Control.IsKeyLocked(Keys.CapsLock)) { SendKeys.SendWait("{CAPSLOCK}" + password); } else { SendKeys.SendWait(password); } System.Threading.Thread.Sleep(2000); SendKeys.SendWait("{ENTER}"); } if (!browser.HasDialog("")) { break; } } } else { SuperTest.WriteReport("Enter credentials into " + rwd.Capabilities.BrowserName); System.Threading.Thread.Sleep(10000); SendKeys.SendWait(username); System.Threading.Thread.Sleep(2000); SendKeys.SendWait("{TAB}"); System.Threading.Thread.Sleep(2000); if (Control.IsKeyLocked(Keys.CapsLock)) { SendKeys.SendWait("{CAPSLOCK}" + password); } else { SendKeys.SendWait(password); } System.Threading.Thread.Sleep(2000); SendKeys.SendWait("{ENTER}"); } try { HpgAssert.True(browser.HasNoDialog(""), "Verify no dialog is present"); } catch (Exception) { System.Threading.Thread.Sleep(60000); } HpgAssert.True(browser.HasNoDialog(""), "Verify no dialog is present"); } //HpgAssert.Contains(pageHeader.Text, "Home Page", "Verify 'Home Page' is loaded"); //TODO: Determine if home page header text is coming back or not. HpgAssert.True(browser.FindXPath("//a[@class='logo']/img").Exists(), "Verify page is loaded"); }
public static PassengerConfiguration WithDriver(this PassengerConfiguration cfg, OpenQA.Selenium.Remote.RemoteWebDriver driver) { cfg.Driver = new WebDriverBindings(driver); return(cfg); }
public WebDriverBindings(OpenQA.Selenium.Remote.RemoteWebDriver driver) { Driver = driver; }