public static IWebDriver GetWebDriver(WebDriverType driverType) { IWebDriver d; if (driverType == WebDriverType.PhantomJS) { d = new PhantomJSDriver(); } else if (driverType == WebDriverType.Chrome) { ChromeDriverService svc = ChromeDriverService.CreateDefaultService( ); ChromeOptions opt = new ChromeOptions(); //{ // BinaryLocation = ... //}; d = new ChromeDriver(svc, opt, TimeSpan.FromSeconds(10)); } else if (driverType == WebDriverType.Firefox) { FirefoxDriverService svc = FirefoxDriverService.CreateDefaultService( ); FirefoxOptions opt = new FirefoxOptions() { BrowserExecutableLocation = Properties.Settings.Default.PathFirefox, //@"C:\Program Files\Mozilla Firefox\firefox.exe" }; d = new FirefoxDriver(svc, opt, TimeSpan.FromSeconds(10)); } else if (driverType == WebDriverType.IE) { //DesiredCapabilities capabilities = DesiredCapabilities.InternetExplorer(); //capabilities.SetCapability( CapabilityType.BrowserName, "IE" ); //capabilities.SetCapability( CapabilityType.Version, "11" ); //capabilities.SetCapability( InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true ); //capabilities.SetCapability( InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true ); //System.setProperty( "webdriver.ie.driver", "C://MavenTest//driver//IEDriverServer.exe" ); //driver = new InternetExplorerDriver(); InternetExplorerOptions opt = new InternetExplorerOptions() { RequireWindowFocus = false }; InternetExplorerDriverService svc = InternetExplorerDriverService.CreateDefaultService( ); d = new InternetExplorerDriver(svc, opt, TimeSpan.FromSeconds(10)); } else { throw new ArgumentException("Unknown driver requested"); } WebDriverFactory.driver = d; return(d); }
protected OpenQA.Selenium.Remote.RemoteWebDriver GetWebDriver(WebDriverType webDriver) { switch (webDriver) { case WebDriverType.Chrome: var driverService = OpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; var options = new OpenQA.Selenium.Chrome.ChromeOptions(); options.AddArgument("--headless"); //options.AddArgument("--window-size=100,100"); return(new OpenQA.Selenium.Chrome.ChromeDriver(driverService, options)); case WebDriverType.IE: throw new NotImplementedException(); case WebDriverType.Firefox: throw new NotImplementedException(); case WebDriverType.Safari: throw new NotImplementedException(); default: throw new ApplicationException(); } }
public WebDriver(WebDriverType driverToUse) { try { // instantiate with the chosen driver switch (driverToUse) { case WebDriverType.Firefox: driver = new FirefoxDriver(); break; case WebDriverType.Chrome: driver = new ChromeDriver(); break; case WebDriverType.IE32: driver = new InternetExplorerDriver(); break; case WebDriverType.Safari: driver = new SafariDriver(); break; case WebDriverType.Headless: default: driver = new SimpleBrowserDriver(); break; } } catch (Exception ex) { throw ex; } }
public void Test(WebDriverType type, Type expected) { using (var actual = WebDriverFactory.Create(type)) { Assert.IsInstanceOfType(actual, expected); } }
public static IWebDriverConfig GetFromPreset(WebDriverType type, string preset) { if (type == default(WebDriverType)) { throw new ArgumentException(nameof(type)); } if (preset == null) { throw new ArgumentNullException(nameof(preset)); } if (string.IsNullOrWhiteSpace(preset)) { throw new ArgumentException(nameof(preset)); } IWebDriverConfig webDriverConfig = null; switch (type) { case WebDriverType.Chrome: webDriverConfig = GetPresetChromeWebDriverConfig(preset); break; } return(webDriverConfig); }
/// <summary> /// Interacts with file dialog windows. /// </summary> /// <param name="webDriverType">The Type of web driver.</param> /// <param name="directory">The directory.</param> /// <param name="files">The files.</param> /// <returns> /// The current Dialog Manager instance. /// </returns> /// <exception cref="System.Exception">Could not find dialog window.</exception> public DialogManager SelectFiles(WebDriverType webDriverType, string directory, params string[] files) { //_log.Append("Verbose", string.Format("Select {0} file(s) in directory: {1}", files.Length, directory.AbsolutePath())); string lookForTitle = null; switch (webDriverType) { case WebDriverType.ChromeDriver: lookForTitle = "Open"; break; case WebDriverType.FirefoxDriver: lookForTitle = "File Upload"; break; case WebDriverType.InternetExplorerDriver: lookForTitle = "Choose File to Upload"; break; case WebDriverType.EmulatorDriver: lookForTitle = "Open File"; break; } bool success; int tries = 0; do { success = WindowHelper.GetDialogHandles(lookForTitle).Any(); tries++; if (!success && tries <= 20) { Thread.Sleep(250); } } while (!success && tries < 20); if (!success) { throw new Exception("Could not find dialog window."); } IEnumerable <IntPtr> dialogs = WindowHelper.GetDialogHandles(lookForTitle); IntPtr dialog = dialogs.FirstOrDefault(); if (dialog != default(IntPtr)) { // Set the window title to something unique so other WebManager instances don't try to use it string title = lookForTitle + " - " + RandomData.RandomAlphanumeric(3); WindowHelper.SetWindowTitle(dialog, title); // Select files and submit DialogHelper.SelectFiles(dialog, title, directory, files); } return(this); }
public static IWebDriver Create(WebDriverType type) { if (type == WebDriverType.Chrome) { return(new ChromeDriver()); } throw new Exception(); }
public static IWebDriver Create(WebDriverType type, string url) { var driver = Create(type); driver.Url = url; var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60)); return(driver); }
public void CountVacanciesWithCountryAndLanguage(WebDriverType webDriverType, string countryToSelect, string countryLabel, string languageToSelect, int expectedJobsCount) { var driver = _webDriver[webDriverType]; driver.Navigate().GoToUrl(URL_TO_TEST); driver.Manage().Window.Maximize(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(WAIT_ELEMENT_TIMEOUT)); var selectedCountry = wait.Until(ExpectedConditions.ElementExists(By.CssSelector("#country-element > div.selecter > span.selecter-selected"))); if (driver.TryFindElement(By.CssSelector("a.cookie-messaging__button"), out var cookieButton)) { cookieButton.Click(); } selectedCountry.Click(); driver.FindElement(By.CssSelector($"#country-element > div.selecter span[data-value='{countryToSelect}']")).Click(); var selectedLanguage = driver.FindElement(By.CssSelector("#language > span.selecter-selected")); selectedLanguage.Click(); driver.WaitForAjax(); var languageSelector = driver.FindElement(By.CssSelector("#language")); var languages = languageSelector.FindElements(By.CssSelector("label.controls-checkbox")); foreach (var l in languages) { var input = l.FindElement(By.TagName("input")); if ((l.Text == languageToSelect && !input.Selected) || (l.Text != languageToSelect && input.Selected)) { l.Click(); } } languageSelector.FindElement(By.CssSelector("a.selecter-fieldset-submit")).Click(); driver.WaitForAjax(); if (driver.TryFindElement(By.CssSelector("a.load-more-button"), out var loadMoreButton) && loadMoreButton.Displayed) { loadMoreButton.Click(); driver.WaitForAjax(); } var vacanciesContainers = driver.FindElements(By.CssSelector("div.vacancies-blocks-container")); int realJobsCount = 0; foreach (var vc in vacanciesContainers) { realJobsCount += vc.FindElements(By.CssSelector("div.vacancies-blocks-item")).Count; } int.TryParse(driver.FindElement(By.CssSelector("div.vacancies-blocks div:nth-child(1) > h3")).Text.Split(' ')[0], out int jobsCountInHeader); Assert.Equal(countryLabel, selectedCountry.Text); Assert.Equal(languageToSelect, selectedLanguage.Text); Assert.Equal(expectedJobsCount, realJobsCount); Assert.Equal(expectedJobsCount, jobsCountInHeader); }
public WebDriverConfigAttribute(WebDriverType type, WebDriverScope scope = default(WebDriverScope), string preset = null) { if (type == default(WebDriverType)) { throw new ArgumentException(nameof(type)); } Type = type; Scope = scope; Preset = preset; }
public void Constructor_EnumDefaultType_ThrowsArgumentException() { // Arrange WebDriverType type = default(WebDriverType); // Act TestDelegate action = () => new WebDriverConfigAttribute(type); // Assert Assert.Throws <ArgumentException>(action); }
public void GetDefault_EnumDefaultType_ThrowsArgumentException() { // Arrange WebDriverType type = default(WebDriverType); // Act TestDelegate action = () => WebDriverConfigs.GetDefault(type); // Assert Assert.Throws <ArgumentException>(action); }
/// <summary> /// Interacts with file dialog windows. /// </summary> /// <param name="webDriverType">The Type of web driver.</param> /// <param name="directory">The directory.</param> /// <param name="files">The files.</param> /// <returns> /// The current Dialog Manager instance. /// </returns> /// <exception cref="System.Exception">Could not find dialog window.</exception> public DialogManager SelectFiles(WebDriverType webDriverType, string directory, params string[] files) { //_log.Append("Verbose", string.Format("Select {0} file(s) in directory: {1}", files.Length, directory.AbsolutePath())); string lookForTitle = null; switch (webDriverType) { case WebDriverType.ChromeDriver: lookForTitle = "Open"; break; case WebDriverType.FirefoxDriver: lookForTitle = "File Upload"; break; case WebDriverType.InternetExplorerDriver: lookForTitle = "Choose File to Upload"; break; case WebDriverType.EmulatorDriver: lookForTitle = "Open File"; break; } bool success; int tries = 0; do { success = WindowHelper.GetDialogHandles(lookForTitle).Any(); tries++; if (!success && tries <= 20) { Thread.Sleep(250); } } while (!success && tries < 20); if (!success) { throw new Exception("Could not find dialog window."); } IEnumerable<IntPtr> dialogs = WindowHelper.GetDialogHandles(lookForTitle); IntPtr dialog = dialogs.FirstOrDefault(); if (dialog != default(IntPtr)) { // Set the window title to something unique so other WebManager instances don't try to use it string title = lookForTitle + " - "+ RandomData.RandomAlphanumeric(3); WindowHelper.SetWindowTitle(dialog, title); // Select files and submit DialogHelper.SelectFiles(dialog, title, directory, files); } return this; }
public void GetFromPreset_FilledWrongPresetName_ThrowsException() { // Arrange WebDriverType type = WebDriverType.Chrome; string preset = "wrongPreset"; // Act TestDelegate action = () => WebDriverConfigs.GetFromPreset(type, preset); // Assert Assert.Throws <MissingWebDriverConfigSectionException>(action); }
public void GetFromPreset_FilledPreset_NotNull() { // Arrange WebDriverType type = WebDriverType.Chrome; string preset = "chrome"; // Act var actual = WebDriverConfigs.GetFromPreset(type, preset) as ChromeWebDriverConfig; //Assert Assert.NotNull(actual); }
public void GetFromPreset_EnumDefaultType_ThrowsArgumentNullException() { // Arrange WebDriverType type = default(WebDriverType); string preset = null; // Act TestDelegate action = () => WebDriverConfigs.GetFromPreset(type, preset); // Assert Assert.Throws <ArgumentException>(action); }
private void InitializeWebDriver(WebDriverType driverToUse) { try { _webDriver = new WebDriver(driverToUse); } catch (Exception ex) { _log.FatalFormat("Could not instatiate driver {0}. Did you download the required executables? \n{1}", driverToUse.ToString(), ex.Message); throw (ex); } }
public static WebDriverInfo GetByType(WebDriverType type) { try { string pid = GetProgIdByType(type); string path = GetPathByProgId(pid); return(new WebDriverInfo(type, path)); }catch (Exception) { return(new WebDriverInfo(type, null)); } }
public static IWebDriver CreateDriver(WebDriverType browser) { switch (browser) { case WebDriverType.Firefox: return(CreateFirefoxDriver()); case WebDriverType.Chrome: return(CreateChromeDriver()); default: throw new NotSupportedException(string.Format("{0} is not supported.", browser)); } }
public void RunInstalledBrowserTests(WebDriverType driverType) { _testSettings.TestType = TestType.InstalledBrowser; _testSettings.DriverType = driverType; _testSettings.TestDirectory = _testSettings.TestDirectory + "\\Installed Browsers\\"; _driver = WebDriverManager.InitializeInstalledBrowserDriver(_testSettings, _testOutputHelper); if (_driver == null) { throw new NullReferenceException("_driver cannot be null"); } PerformTest(); _driver.Close(); }
public void RunStandaloneBrowserTests(WebDriverType driverType, decimal version) { _testSettings.TestType = TestType.StandaloneBrowser; _testSettings.DriverType = driverType; _testSettings.TestDirectory = _testSettings.TestDirectory + "\\Standalone Browsers\\"; _driver = WebDriverManager.InitializeStandaloneBrowserDriver(_testSettings, version, _testOutputHelper); if (_driver == null) { throw new NullReferenceException("_driver cannot be null"); } PerformTest(); _driver.Close(); }
public WebDriver(WebDriverType type) { switch (type) { case WebDriverType.Chrome: _webDriver = new ChromeDriver(); break; case WebDriverType.Firefox: _webDriver = new FirefoxDriver(); break; } StartDriving(); }
public void RunInstalledBrowserTests(WebDriverType driverType) { _testSettings.TestType = TestType.InstalledBrowser; _testSettings.DriverType = driverType; _testSettings.TestDirectory = _testSettings.TestDirectory + "\\Installed Browsers\\"; _driver = WebDriverManager.InitializeInstalledBrowserDriver(_testSettings, _testOutputHelper); if (_driver == null) { throw new NullReferenceException("_driver cannot be null"); } PerformTest(); _driver.Close(); }
public void RunStandaloneBrowserTests(WebDriverType driverType, decimal version) { _testSettings.TestType = TestType.StandaloneBrowser; _testSettings.DriverType = driverType; _testSettings.TestDirectory = _testSettings.TestDirectory + "\\Standalone Browsers\\"; _driver = WebDriverManager.InitializeStandaloneBrowserDriver(_testSettings, version, _testOutputHelper); if (_driver == null) { throw new NullReferenceException("_driver cannot be null"); } PerformTest(); _driver.Close(); }
private static IWebDriver GetDriverByType(WebDriverType webDriverType) { switch (webDriverType) { case WebDriverType.Chrome: return(new ChromeDriver()); case WebDriverType.Explorer: return(new InternetExplorerDriver()); case WebDriverType.Firefox: return(new FirefoxDriver()); } throw new ArgumentNullException("No browser specified"); }
public static List <string> ParseCustomBrowserArgs(WebDriverType driverType) { switch (driverType) { case WebDriverType.Chrome: return(ParseChromeArgs()); case WebDriverType.FireFox: return(ParseFirefoxArgs()); case WebDriverType.InternetExplorer: return(ParseInternetExplorerArgs()); default: return(new List <string>()); } }
public static WebDriverWrapper Create(WebDriverType type, string path) { switch (type) { case WebDriverType.Chrome: return(new ChromeWrapper(path)); case WebDriverType.Firefox: return(new FirefoxWrapper(path)); case WebDriverType.Edge: return(new EdgeWrapper()); case WebDriverType.IE: return(new IEWrapper()); case WebDriverType.Safari: return(new SafariWrapper()); default: throw new NotSupportedException(); } }
public static IWebDriver CreateDriver(WebDriverType webDriverType, BrowserType browserType, TestContext currentContext) { switch (webDriverType) { case WebDriverType.Local: return(CreateLocalDriver(browserType)); case WebDriverType.Grid: return(CreateRemoteDriver(browserType)); case WebDriverType.Sauce: return(CreateSauceDriver(browserType, currentContext)); default: throw new ArgumentOutOfRangeException("The web driver type isn't supported"); } }
private static string GetProgIdByType(WebDriverType type) { switch (type) { case WebDriverType.IE: return("IE.HTTP"); case WebDriverType.Firefox: return("FirefoxURL"); case WebDriverType.Chrome: return("ChromeHTML"); case WebDriverType.Safari: return("SafariHTML"); case WebDriverType.Edge: return("AppXq0fevzme2pys62n3e0fbqa7peapykr8v"); default: return(null); } }
public static IWebDriverConfig GetDefault(WebDriverType type) { if (type == default(WebDriverType)) { throw new ArgumentException(nameof(type)); } IWebDriverConfig webDriverConfig = null; switch (type) { case WebDriverType.Chrome: webDriverConfig = new ChromeWebDriverConfig(); break; } return(webDriverConfig); }
public static WebDriver CreateDriver(WebDriverType browser) { switch (browser) { case WebDriverType.Firefox: return new WebDriver(FireFox()); case WebDriverType.Chrome: return new WebDriver(Chrome()); case WebDriverType.IE32: return new WebDriver(IE32Bit()); case WebDriverType.IE64: return new WebDriver(IE64Bit()); case WebDriverType.Edge: return new WebDriver(Edge()); default: throw new ArgumentException("Unknown BrowserType"); } }
public static IWebDriver GetInstance(WebDriverType type) { switch (type) { case WebDriverType.RemoteChrome: return(new RemoteWebDriver(new Uri(remoteHubUrl), new ChromeOptions())); case WebDriverType.LocalChrome: ChromeOptions options = new ChromeOptions(); ////忽略Https证书不存在的错误,有助于加快Https页面加载速度 options.AddArgument("--ignore-certificate-errors"); options.AddArgument("--start-maximized"); var webDriver = new ChromeDriver(options); //webDriver.Manage().Window.Maximize(); return(webDriver); default: return(null); } }
public static WebDriver CreateDriver(WebDriverType browser) { switch (browser) { case WebDriverType.Firefox: return(new WebDriver(FireFox())); case WebDriverType.Chrome: return(new WebDriver(Chrome())); case WebDriverType.IE32: return(new WebDriver(IE32Bit())); case WebDriverType.IE64: return(new WebDriver(IE64Bit())); case WebDriverType.Edge: return(new WebDriver(Edge())); default: throw new ArgumentException("Unknown BrowserType"); } }
public IWebDriver this[WebDriverType webDriver] { get { return(_webDrivers[webDriver]); } }
public ProfilePageTest(WebDriverType webDriverType, BrowserType browserType) : base(webDriverType, browserType) { }
public WebDriverInfo(WebDriverType type, string path) : this() { Browser = type; Path = path; }
public XMLTester(WebDriverType driverToUse, string testFileDir, string configFile) { InitializePlace(testFileDir, configFile); InitializeWebDriver(driverToUse); }
public static string ValidateDriverPresentOrUnblocked(WebDriverType webDriverType, string driverLocation) { if (!File.Exists(driverLocation)) { //The driver doesnt exist. Lets default to the one we may have installed. if (webDriverType == WebDriverType.ChromeDriver) { var chromeDrivers = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\MultiBrowser\\Drivers\\ChromeDrivers\\"; if (Directory.Exists(chromeDrivers)) { var driverFolders = Directory.GetDirectories(chromeDrivers); List<Version> driverVersions = new List<Version>(); foreach (var driverFolder in driverFolders) { try { string driverValue = driverFolder.Replace(chromeDrivers, ""); if (driverValue.Contains(".")) { string[] versionValues = driverValue.Split('.'); if (versionValues.Count() > 1) { Version driverVersion = new Version(Convert.ToInt32(versionValues[0]), Convert.ToInt32(versionValues[1])); driverVersions.Add(driverVersion); } } } catch { } } var finalVersions = driverVersions.OrderByDescending(d => d); var folder = finalVersions.FirstOrDefault(); var possibleDriver = driverLocation + folder + "\\chromedriver.exe"; if (File.Exists(possibleDriver)) { driverLocation = possibleDriver; } } } else if (webDriverType == WebDriverType.InternetExplorerDriver) { var ieDriverPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\MultiBrowser\\Drivers\\IEDrivers\\x86\\IEDriverServer.exe"; if (Environment.Is64BitProcess) { ieDriverPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\MultiBrowser\\Drivers\\IEDrivers\\x64\\IEDriverServer64.exe"; } if (File.Exists(ieDriverPath)) { driverLocation = ieDriverPath; } } else if (webDriverType == WebDriverType.EdgeDriver) { var edgeDriverPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\MultiBrowser\\Drivers\\MicrosoftWebDriver\\MicrosoftWebDriver.exe"; if (File.Exists(edgeDriverPath)) { driverLocation = edgeDriverPath; } } //If we couldnt fix it, throw exception if (!File.Exists(driverLocation)) { throw new DriverNotFoundException("The driver " + driverLocation + " could not be found"); } } if (Zone.CreateFromUrl(driverLocation).SecurityZone != SecurityZone.MyComputer) { throw new DriverBlockedException("The driver " + driverLocation + " is blocked. Please right click the specified file and click Unblock"); } return driverLocation; }
private void initBrowserType() { if(webDriver !=null) { foreach (var type in Enum.GetValues(typeof(WebDriverType))) { if(webDriver.ToLower().Equals(type.ToString().ToLower())) { webDriverType = (WebDriverType)type; return; } } } }