public static void Wait(int miliseconds, int maxTimeOutSeconds = 60) { var wait = new WebDriverWait(Driver, new TimeSpan(0, 0, 1, maxTimeOutSeconds)); var delay = new TimeSpan(0, 0, 0, 0, miliseconds); var timestamp = DateTime.Now; wait.Until(webDriver => (DateTime.Now - timestamp) > delay); }
public void ShouldMoveAvatar() { IWebDriver driver = Tools.CreateDriver(); try { driver.Navigate().GoToUrl( "http://localhost/projects/test-client/client.xhtml#FIVESTesting&OverrideServerPort=34837"); Tools.Login(driver, "1", ""); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); IJavaScriptExecutor jsExecutor = driver as IJavaScriptExecutor; // Wait for the FIVES.AvatarEntityGuid to become available. string avatarGuid = (string)wait.Until(d => jsExecutor.ExecuteScript("return FIVES.AvatarEntityGuid")); // Wait until avatar's transform element becomes available. IWebElement avatarTransform = wait.Until(d => d.FindElement(By.Id("transform-" + avatarGuid))); string startTranslation = avatarTransform.GetAttribute("translation"); jsExecutor.ExecuteScript("$(document).trigger({type: 'keydown', which: 87, keyCode: 87})"); // Wait until avatar starts to move. wait.Until(d => avatarTransform.GetAttribute("translation") != startTranslation); } finally { driver.Quit(); } }
public static void NavigateToDraftFolder() { Console.WriteLine("Navigating to Draft folder..."); driver.FindElement(By.XPath("//*[@id='b-nav_folders']/div/div[3]/a/span")).Click(); wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(d => d.FindElement(By.Id("b-letters"))); }
public string GetPageFilterList() { driver.SwitchTo().Frame(investigationFRAME); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(waitsec)); IWebElement element = wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("#crmGrid_rta_systemuser_rta_inv_case_investigatorid_SavedNewQuerySelector>span"))); return element.Text; }
public override void Execute(IWebDriver driver, dynamic context) { var resolvedSelector = Test.ResolveMacros(Selector); var wait = new WebDriverWait(driver, TimeSpan.FromMilliseconds(Timeout == 0 ? 5000 : Timeout)); try { if (WaitForVisible) { wait.Until(d => ExpectedConditions.ElementIsVisible(By.CssSelector(resolvedSelector))(d)); } else { wait.Until(d => d.FindElement(By.CssSelector(resolvedSelector))); } if (IsFalseExpected) throw new InvalidOperationException("Element with selector '" + Selector + "' exists."); } catch (WebDriverTimeoutException) { if (!IsFalseExpected) throw; } }
public void BaseTestInitialize(IWebDriver initialDriver, string baseUri, int timeout) { this.Driver = initialDriver; this.BaseUri = baseUri; this.Timeout = timeout; this.Wait = new WebDriverWait(initialDriver, TimeSpan.FromSeconds(timeout)); }
public void SearchNotExistingBug() { BaseTest.BaseUrl = BugTrackerPage.HomePageUrl; BaseTest.Setup(BaseTest.BaseUrl); WebDriverWait wait = new WebDriverWait(BaseTest.BaseDriver, TimeSpan.FromSeconds(5)); wait.Until((d) => { return d.Title.StartsWith("BugTracker"); }); BugTrackerPage.AreAllElementShown(); BugTrackerPage.BugIdTextInput.Clear(); BugTrackerPage.BugIdTextInput.SendKeys("123abc"); BugTrackerPage.GotoIdBtn.Click(); try { Assert.IsTrue(BugTrackerPage.ErrorMsgLabel.Displayed); } catch (NoSuchElementException nsee) { Thread.Sleep(1500); Assert.IsTrue(BugTrackerPage.ErrorMsgLabel.Displayed); } string expectedErrMsg = "Error: Bug ID must be an integer."; Assert.AreEqual(expectedErrMsg, BugTrackerPage.ErrorMsgLabel.Text); BaseTest.TearDown(); }
public Individual360Page() { var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.UrlContains("/app/console/individual/view?")); PageFactory.InitElements(Driver, this); }
public void SimpleNavigationTest() { // Create a new instance of the Firefox driver. // Notice that the remainder of the code relies on the interface, // not the implementation. // Further note that other drivers (InternetExplorerDriver, // ChromeDriver, etc.) will require further configuration // before this example will work. See the wiki pages for the // individual drivers at http://code.google.com/p/selenium/wiki // for further information. IWebDriver driver = new FirefoxDriver(); //Notice navigation is slightly different than the Java version //This is because 'get' is a keyword in C# driver.Navigate().GoToUrl("http://www.google.com/"); // Find the text input element by its name IWebElement query = driver.FindElement(By.Name("q")); // Enter something to search for query.SendKeys("Cheese"); // Now submit the form. WebDriver will find the form for us from the element query.Submit(); // Google's search is rendered dynamically with JavaScript. // Wait for the page to load, timeout after 10 seconds WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until((d) => { return d.Title.ToLower().StartsWith("cheese"); }); //Close the browser driver.Quit(); }
public static void WaitForPageToLoad(this IWebDriver driver) { TimeSpan timeout = new TimeSpan(0, 0, 100); WebDriverWait wait = new WebDriverWait(driver, timeout); IJavaScriptExecutor javaScript = driver as IJavaScriptExecutor; if (javaScript == null) throw new ArgumentException("driver", "driver must support javascript execution"); wait.Until((d) => { try { string readyState = javaScript.ExecuteScript("if (document.readyState) return document.readystate;").ToString(); return readyState.ToLower() == "complete"; } catch (InvalidOperationException e) { //Window is no lonfer available return e.Message.ToLower().Contains("unable to get browser"); } catch (WebDriverException e) { //Browser is no longer available return e.Message.ToLower().Contains("unable to connect"); } catch (Exception) { return false; } }); }
public override void ensurePageLoaded() { var wait = new WebDriverWait(pageManager.driver, TimeSpan.FromSeconds(PageManager.WAITTIMEFORFINDELEMENT)); wait.Until(d => d.FindElement(By.ClassName("b-common_context_menu-content"))); //Ожидание пока табличка остановится waitForFixPosition(pageManager.driver.FindElement(By.ClassName("b-common_context_menu-content"))); }
public static void NavigateToDraftFolderFromNewMessage() { Console.WriteLine("Navigating to Draft folder..."); driver.FindElement(By.XPath("//*[@id='b-nav_folders']/div/div[3]/a/span")).Click(); wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(d => d.FindElement(By.XPath("//span[text() = 'Сохранено в ']"))); }
/// <summary> /// Lookup a reference field value. /// </summary> /// <param name="driver"></param> /// <param name="by">A mechanism by which to find the desired reference field within the current document.</param> /// <param name="sendKeys">A property value of the current reference field.</param> public static void Lookup(this IWebDriver driver, By by, string sendKeys) { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); IWebElement lookup = wait.Until(ExpectedConditions.ElementIsVisible(by)); lookup.Click(); string currentWindowHandle = driver.CurrentWindowHandle; string searchWindow = driver.WindowHandles.First(o => o != currentWindowHandle); driver.SwitchTo().Window(searchWindow); IWebElement searchFor = wait.Until(ExpectedConditions.ElementExists(By.ClassName("list_search_text"))); searchFor.Click(); searchFor.Clear(); searchFor.SendKeys(sendKeys); var selects = driver.FindElements(By.ClassName("list_search_select")); IWebElement search = selects.First(o => o.GetAttribute("id").Contains("_select")); driver.SelectOption(search, "Name"); //"for text"); wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("img[title='Go']"))).Click(); IWebElement item = wait.Until(ExpectedConditions.ElementExists(By.LinkText(sendKeys))); item.Click(); driver.SwitchTo().Window(currentWindowHandle); driver.SwitchTo().Frame("gsft_main"); }
public static void LoginProfile() { BaseTest.BaseUrl = GooglePage.HomePageUrl; BaseTest.Setup(BaseTest.BaseUrl); WebDriverWait wait = new WebDriverWait(BaseTest.BaseDriver, TimeSpan.FromSeconds(5)); wait.Until((d) => { return d.Title.StartsWith("Google"); }); GooglePage.AreAllElementShown(); // login btn GooglePage.LoginBtn.Click(); // login page // Sign in - Google Accounts Thread.Sleep(1500); Assert.AreEqual("Вход – Google Профили", BaseTest.BaseDriver.Title); Assert.IsTrue(GooglePage.EmailInput.Displayed); GooglePage.EmailInput.Clear(); GooglePage.EmailInput.SendKeys("testqaexam"); Assert.IsTrue(GooglePage.PasswordInput.Displayed); GooglePage.PasswordInput.Clear(); GooglePage.PasswordInput.SendKeys("TestPass"); Assert.IsTrue(GooglePage.SigninBtn.Displayed); GooglePage.SigninBtn.Click(); Thread.Sleep(1500); }
public void TestSportsRu() { Console.WriteLine("Test started!"); const string mailUrl = "https://10minutemail.net"; const string sportsUrl = "https://sports.ru/"; using (D) { D.Navigate().GoToUrl(mailUrl); var wait = new WebDriverWait(D, TimeSpan.FromSeconds(30)); wait.Until(ExpectedConditions.ElementIsVisible(By.Id("fe_text"))); D.FindElement(By.Id("fe_text")).Click(); var email = D.FindElement(By.Id("fe_text")).GetAttribute("value"); var username = email.Split('@').First(); var password = "******"; D.RegSportsRu(sportsUrl, email, password, username); D.Navigate().GoToUrl(mailUrl); Thread.Sleep(5000); } }
// This should be replaced for any given application; this isn't a one-size-fits-all sort of thing. public static IWebElement GetElementFromActivePage(this IWebDriver driver, string cssSelector, double timeoutSeconds = 20) { IWebElement element = null; var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutSeconds)); wait.IgnoreExceptionTypes(typeof(NoSuchElementException), typeof(WebDriverTimeoutException),typeof(UnhandledAlertException)); try { element = wait.Until(drv => { try { return drv.FindElement(By.CssSelector(cssPrefix + cssSelector)); } catch (NoSuchElementException ex) { return null; } }); } catch (WebDriverTimeoutException ex) { return null; } return element; }
public static void RunTest([NotNull] string url, [NotNull] string initialPageTitle, [CanBeNull] IEnumerable<Action<IWebDriver>> testSteps) { Console.WriteLine(url); var steps = new List<Action<IWebDriver>> { b => b.Navigate().GoToUrl(url), b => { if (!String.IsNullOrEmpty(initialPageTitle)) { var wait = new WebDriverWait(b, TimeSpan.FromSeconds(30)); wait.Until(x => b.Title.Equals(initialPageTitle)); b.Title.ShouldBeEqualTo(initialPageTitle, "incorrect page title"); } } }; if (testSteps != null) { steps.AddRange(testSteps); } var notification = _runner.PassesTest(steps) ?? new Notification(); notification.Success.ShouldBeTrue(notification.ToString()); }
public void should_open_gmail_and_send_message() { //arrange ChromeDriver driver = new ChromeDriver(); driver.Navigate().GoToUrl("http://www.google.com.ua"); WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, 20)); //act && assert GetElementOnXPath(driver, wait, "//*[@id=\"gbwa\"]/div[1]/a").Click(); GetElementOnXPath(driver, wait, "//*[@id=\"gb23\"]").Click(); GetElementOnXPath(driver, wait, "//*[@id=\"gmail-sign-in\"]").Click(); GetElementOnXPath(driver, wait, "//*[@id=\"Email\"]").SendKeys(login); GetElementOnXPath(driver, wait, "//*[@id=\"next\"]").Click(); GetElementOnXPath(driver, wait, "//*[@id=\"Passwd\"]").SendKeys(pass); GetElementOnXPath(driver, wait, "//*[@id=\"signIn\"]").Click(); GetElementOnXPath(driver, wait, "//*[@id=\":j2\"]/div/div").Click(); GetElementOnXPath(driver, wait, "//*[@id=\":oi\"]").SendKeys("*****@*****.**"); GetElementOnXPath(driver, wait, "//*[@id=\":o3\"]").SendKeys("testMsg"); GetElementOnXPath(driver, wait, "//*[@id=\":p5\"]").SendKeys("Bu-ga-ga!!"); GetElementOnXPath(driver, wait, "//*[@id=\":nt\"]").Click(); string expectedText = "Повідомлення надіслано. Переглянути повідомлення"; string actualText = GetElementOnXPath(driver, wait, "/html/body/div[7]/div[3]/div/div[1]/div[5]/div[1]/div[2]/div[3]/div/div/div[2]").Text; //Assert Assert.AreEqual(expectedText, actualText); }
public void TestExplicitWait() { IWebDriver driver = new ChromeDriver(@"C:\ChromeDriver"); driver.Navigate().GoToUrl("http://dl.dropbox.com/u/55228056/AjaxDemo.html"); try { IWebElement page4button = driver.FindElement(By.LinkText("Page 4")); page4button.Click(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); IWebElement message = wait.Until<IWebElement>((d) => { return d.FindElement(By.Id("page4")); }); Assert.IsTrue(message.Text.Contains("Nunc nibh tortor")); } catch (NoSuchElementException e) { Assert.Fail("Element not found!!"); } finally { driver.Close(); } }
public ContentPage Publish() { var wait = new WebDriverWait(Browser.Current, TimeSpan.FromSeconds(10)); var el = wait.Until(drv => drv.FindElement(By.PartialLinkText("Publish"))); el.Click(); return this; }
private void 分析AToolStripMenuItem_Click(object sender, EventArgs e) { foreach (var page in JianWrapper.GetJian().Pages) { var url = page.Url; foreach (var interest in page.Interests.Keys) { var xpath = page.Interests[interest].Pattern; WebDriverWrapper.GetDriver().Navigate().GoToUrl(url); var wait = new WebDriverWait(WebDriverWrapper.GetDriver(), TimeSpan.FromSeconds(120)); try { wait.Until(d => FindElement(d, xpath)); var element = FindElement(WebDriverWrapper.GetDriver(), xpath); page.Interests[interest].Value = element.Text; } catch (Exception) { page.Interests[interest].Value = "查找失败。(请重试或者在设置中修改特征字符)"; } } } WebDriverWrapper.Close(); JianWrapper.GetJian().SaveToFile(); ReloadSetting(); MessageBox.Show("分析完毕。"); }
public ContentPage PostBody(string body) { var wait = new WebDriverWait(Browser.Current, TimeSpan.FromSeconds(10)); var el = wait.Until(drv => drv.FindElement(By.Id("editor"))); el.SendKeys(body); return this; }
public ContentPage PostTitle(string title) { var wait = new WebDriverWait(Browser.Current, TimeSpan.FromSeconds(10)); var el = wait.Until(drv => drv.FindElement(By.Name("txtTitle"))); el.SendKeys(title); return this; }
public void QuickSearch(QuickSearchType recordtype, string name) { var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(15)); var qucikSearchArrow = wait.Until( ExpectedConditions.ElementIsVisible( By.XPath(".//span[contains(text(), 'Search For')]/following::td[2]/a"))); qucikSearchArrow.Click(); const string xPath = "//li[.='{0}']"; var key = string.Format(xPath, recordtype); wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(15)); var module = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath(key))); module.Click(); const string id = "ctl00_{0}_Input"; var record = string.Format(id, QuickSearchInputBoxLibrary[recordtype]); wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(15)); var recordnameinputbx = wait.Until(ExpectedConditions.ElementIsVisible(By.Id(record))); recordnameinputbx.Click(); recordnameinputbx.SendKeys(name); const string recordXpath = "//td/span[contains(text(), '{0}')]"; var recordname = string.Format(recordXpath, name); wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(15)); var selectindividual = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath(recordname))); selectindividual.Click(); }
public ScrollElement(ScrollerItems item) { ImageDropName = itemsdrop[item]; ImageDragName = itemsdrag[item]; locator = itempath[item]; var wait = new WebDriverWait(Browser.GetDriver(), TimeSpan.FromMilliseconds(Convert.ToDouble(Configuration.GetTimeout()))); try { wait.Until(waiting => { try { return Browser.GetDriver().FindElement(locator).GetAttribute("style").Contains("background-image: url"); } catch (Exception) { return false; } }); } catch (WebDriverTimeoutException) { Assert.Fail("Cannot wait until image displayed"); } }
public WebBlock(Session session) : base(session) { // Wait for the DOM to start changing so we can START waiting for the new element this.Pause(200); Wait = new WebDriverWait(Session.Driver, new TimeSpan(3000)); Tag = Wait.Until(driver => driver.GetElement(By.TagName("body"))); }
public static IEnumerable<IWebElement> WaitUntilElementsPresent(this IWebDriver driver, By selector) { var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60)); wait.Until(ExpectedConditions.ElementExists(selector)); return driver.FindElements(selector); }
public void ClickAddNewTenancyRequestButton() { RefreshPageFrame.RefreshPage(driver, frameId); this.driver.SwitchTo().Frame(FRAMETenancyRequest); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(waitsec)); wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("img[alt='Add New Tenancy Request']"))).Click(); }
public ContentPage GoToWriteNewPostScreen() { var wait = new WebDriverWait(Browser.Current, TimeSpan.FromSeconds(10)); var el = wait.Until(drv => drv.FindElement(By.ClassName("btn-header"))); el.Click(); return this; }
public void sumi() { IWebElement element; driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10)); // webpegeを表示 driver.Navigate().GoToUrl("https://www.f-aspit.com/aspit/portal/login.asp"); driver.FindElement(By.Name("KigyoCD")).SendKeys("99990005"); driver.FindElement(By.Name("UserID")).SendKeys("goen9995"); driver.FindElement(By.Name("Password")).SendKeys("354959"); driver.FindElement(By.CssSelector("img[id='img01']")).Click(); driver.SwitchTo().Frame("fraNews"); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5)); wait.Until(ExpectedConditions.ElementToBeClickable(By.Name("btnMenu0"))); element = driver.FindElement(By.Name("btnMenu0")); element.SendKeys(Keys.Enter); wait.Until(ExpectedConditions.InvisibilityOfElementLocated(By.Name("btnMenu0"))); wait.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("main")); element = driver.FindElement(By.LinkText("受注照会")); element.SendKeys(Keys.Enter); driver.FindElement(By.Name("selFromDay")).Click(); driver.FindElement(By.XPath("//span[@id='idTargetKikanArea_From_Day']/select//option[1]")).Click(); driver.FindElement(By.Id("imgDownload")).Click(); //ここにダウンロード処理を入れる driver.Quit(); }
static void Main(string[] args) { try { FirefoxBinary ffBinary = new FirefoxBinary(Convert.ToString(ConfigurationManager.AppSettings["firefox"])); FirefoxProfile firefoxProfile = new FirefoxProfile(); using (IWebDriver driver = new FirefoxDriver(ffBinary, firefoxProfile)) { List <string> weatherStationsId = LoadIniaWeatherStations(); List <string> dataIds = LoadIniaDataIds(); var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); foreach (var station in weatherStationsId) { try { driver.Navigate().GoToUrl(ConfigurationManager.AppSettings["url"]); wait.Until(d => d.FindElement(By.Id("selectEstacion"))); IWebElement select = driver.FindElement(By.Id("selectEstacion")); var selectElement = new SelectElement(select); // select by text selectElement.SelectByValue(station); IWebElement variables = driver.FindElement(By.Id("variables")); var variablesElement = new SelectElement(variables); foreach (var data in dataIds) { variablesElement.SelectByValue(data); } } catch (Exception ex) { logger.Error(ex, "Falló en el momento de seleccionar estación y/o datos. StationId = {0} || " + ex.Message, station); continue; } wait.Until(d => d.FindElement(By.Name("Button"))); IWebElement buttom = driver.FindElement(By.Name("Button")); buttom.Click(); // Parse logic ProcessIniaData(driver, station); } // Carga correcta de Weather Data SendEmails("Carga correcta de INIA Weather Data", emailLines); driver.Quit(); } } catch (Exception ex) { logger.Error(ex, ex.Message); List <string> errors = new List <string>() { ex.Message, ex.StackTrace }; SendEmails("Error en la carga de INIA Weather Data", errors); } }
public void D_EditAccountInformation_ValidData_Successful(string initialDisplayName, string initialPassword, string _displayName, string _email, string _firstName, string _lastName, string _password, string _sex) { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); string[,] testValues = new string[, ] { { "DisplayName", _displayName }, { "Email", _email }, { "FirstName", _firstName }, { "LastName", _lastName } }; // Navigation to Manage Account Details NavToManageAccountDetails(initialDisplayName, initialPassword); // click Edit Account Details driver.FindElement(By.XPath("//a[@href='/Manage/ChangeAccountDetails']")).Click(); driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(3); // wait for Edit Account Details page wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h2[text()='Edit Account Details']"))); // change account information (Display Name, Email, First Name, Last Name) for (int i = 0; i < testValues.GetLength(0); i++) { driver.FindElement(By.XPath("//input[@name='" + testValues[i, 0] + "']")).Clear(); driver.FindElement(By.XPath("//input[@name='" + testValues[i, 0] + "']")).SendKeys(testValues[i, 1]); } // change sex driver.FindElement(By.XPath("//select[@name='Sex']")).Click(); switch (_sex) { case "Male": driver.FindElement(By.XPath("//select[@name='Sex']/option[@value='0']")).Click(); break; case "Female": driver.FindElement(By.XPath("//select[@name='Sex']/option[@value='1']")).Click(); break; default: driver.FindElement(By.XPath("//select[@name='Sex']/option[@value='2']")).Click(); break; } // click Save driver.FindElement(By.XPath("//input[@type='submit' and @value='Save']")).Click(); // wait for manage your account page wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h2[text()='Manage Your Account']"))); // check display name in Manage Account string displayNameValue = driver.FindElement(By.XPath("//div[./b[text()='Display Name']]/following-sibling::div")).Text; Assert.AreEqual(testValues[0, 1], displayNameValue); // check email in Manage Account string emailValue = driver.FindElement(By.XPath("//div[./b[text()='" + testValues[1, 0] + "']]/following-sibling::div")).Text; Assert.AreEqual(testValues[1, 1], emailValue); // check actual name in Manage Account string actualNameValue = driver.FindElement(By.XPath("//div[./b/label[text()='Actual Name']]/following-sibling::div")).Text; Assert.AreEqual(testValues[2, 1] + " " + testValues[3, 1], actualNameValue); // check Sex string sexValue = driver.FindElement(By.XPath("//div[./b[text()='Sex']]/following-sibling::div")).Text; Assert.AreEqual(_sex, sexValue); // click Change your password driver.FindElement(By.XPath("//a[@href='/Manage/ChangePassword']")).Click(); // wait for Change Password page wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h2[text()='Change Password.']"))); // enter current password driver.FindElement(By.XPath("//input[@name='OldPassword']")).Clear(); driver.FindElement(By.XPath("//input[@name='OldPassword']")).SendKeys(initialPassword); // enter new password driver.FindElement(By.XPath("//input[@name='NewPassword']")).Clear(); driver.FindElement(By.XPath("//input[@name='NewPassword']")).SendKeys(_password); // confirm new password driver.FindElement(By.XPath("//input[@name='ConfirmPassword']")).Clear(); driver.FindElement(By.XPath("//input[@name='ConfirmPassword']")).SendKeys(_password); // click Change Password driver.FindElement(By.XPath("//input[@type='submit' and @value='Change password']")).Click(); // wait for manage your account page wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h2[text()='Manage Your Account']"))); // click Log off driver.FindElement(By.XPath("//a[text()='Log off']")).Click(); // navigation to Manage Account Details NavToManageAccountDetails(_displayName, _password); // check display name in Manage Account string displayNameValue2 = driver.FindElement(By.XPath("//div[./b[text()='Display Name']]/following-sibling::div")).Text; Assert.AreEqual(testValues[0, 1], displayNameValue2); }
public CartPage(IWebDriver driver, WebDriverWait wait) { _driver = driver; _wait = wait; Init(); }
protected BasePage(IWebDriver driver, WebDriverWait wait) { _driver = driver; _wait = wait; }
public DashboardPage(IWebDriver driver) { this.driver = driver; wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60)); }
//IWebDriver Driver = new FirefoxDriver(); public BrowserObject(string browserName) { BrowserTypeSet(browserName); wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(15)); }
public static void StartDriver() { driverInstance = new ChromeDriver(); browserWait = new WebDriverWait(driverInstance, new TimeSpan(0, 0, 120)); }
public WebDriverWait GetWait(int seconds = 10) { WebDriverWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(seconds)); return(wait); }
public void ClickUsingAllByMethods() { By linkText = By.LinkText("Click this link"); By clickableLink = By.Name("clickableLink"); // create a driver var driver = GetChromeDriver(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20)); // IWebElement linkSuccess = driver.FindElement(By.ClassName("entry-title")); // IWebElement ButtonSuccess = driver.FindElement(By.ClassName("entry-title")); driver.Manage().Window.Maximize(); driver.Navigate().GoToUrl("https://ultimateqa.com/simple-html-elements-for-automation/"); // click button driver.FindElement(By.ClassName("buttonClass")).Click(); // define success class IWebElement SuccessMsg = driver.FindElement(By.ClassName("entry-title")); // wait for success mesg wait.Until(ExpectedConditions.TextToBePresentInElement(SuccessMsg, "Button success")); driver.Navigate().Back(); // click This button using id wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("idExample"))).Click(); // wait for success link driver.FindElement(By.XPath("//h1[.='Button success']")); // add a wait condition to this. wait.Until(ExpectedConditions.ElementToBeClickable(driver.FindElement(By.XPath("//h1[.='Button success']")))).Click(); // wait.Until(ExpectedConditions.ElementToBeClickable(driver.FindElement(By.XPath("//h1[.='Button success']")))); // // wait.Until(ExpectedConditions.TextToBePresentInElement(SuccessMsg, "Button success")); // not finding the text Button success driver.Navigate().Back(); // Click Link Text "click this link" wait.Until(ExpectedConditions.ElementToBeClickable(linkText)).Click(); // wait for link success wait.Until(ExpectedConditions.ElementToBeClickable(driver.FindElement(By.XPath("//h1[.='Link success']")))); // wait.Until(ExpectedConditions.TextToBePresentInElement(SuccessMsg, "Link success")); driver.Navigate().Back(); // click "Click this link" wait.Until(ExpectedConditions.ElementToBeClickable(clickableLink)).Click(); // IJavaScriptExecutor js = (IJavaScriptExecutor)driver; // js.ExecuteScript("window.scrollTo(0, 0)"); // wait for link success wait.Until(ExpectedConditions.ElementToBeClickable(driver.FindElement(By.XPath("//h1[.='Link success']")))); // wait.Until(ExpectedConditions.TextToBePresentInElement(SuccessMsg, "Link success")); driver.Navigate().Back(); // Click This link wait.Until(ExpectedConditions.ElementToBeClickable(By.PartialLinkText("this link"))).Click(); // wait for success // wait.Until(ExpectedConditions.TextToBePresentInElement(SuccessMsg, "Link success")); wait.Until(ExpectedConditions.ElementToBeClickable(driver.FindElement(By.XPath("//h1[.='Link success']")))); driver.Navigate().Back(); // click "click this link wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("#simpleElementsLink"))).Click(); // wait for success wait.Until(ExpectedConditions.ElementToBeClickable(driver.FindElement(By.XPath("//h1[.='Link success']")))); // wait.Until(ExpectedConditions.TextToBePresentInElement(SuccessMsg, "Link success")); driver.Navigate().Back(); // click a button wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector(".buttonClass"))).Click(); // wait for success wait.Until(ExpectedConditions.TextToBePresentInElement(SuccessMsg, "Button success")); driver.Navigate().Back(); // click "click this button using id" wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//*[@id='idExample']"))).Click(); // wait for success wait.Until(ExpectedConditions.TextToBePresentInElement(SuccessMsg, "Button success")); driver.Navigate().Back(); // scroll to element var element1 = driver.FindElement(By.XPath("//*[@class='buttonClass']")); Actions actions = new Actions(driver); actions.MoveToElement(element1); actions.Perform(); // click button using class name wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//*[@class='buttonClass']"))).Click(); // wait for success wait.Until(ExpectedConditions.TextToBePresentInElement(SuccessMsg, "Button success")); driver.Close(); }
private static void WaitForLoad(IWebDriver driver, WebDriverWait wait) { wait.Until(wd => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").ToString() == "complete"); }
public abstract void ValidateDataNode(IWebDriver webDriver, WebDriverWait webDriverWait);
public DepartmentsFilterSection(IWebDriver driver, WebDriverWait wait) : base(driver, wait) { }
protected BasePage(IWebDriver driver, WebDriverWait wait, Actions actions) { this.driver = driver; this.wait = wait; this.actions = actions; }
public void WaitByHtml(TimeSpan secondsToWait, By by) { WebDriverWait wait = new WebDriverWait(_webdriver, secondsToWait); wait.Until(x => !string.IsNullOrEmpty(x.FindElement(by).GetAttribute("innerHTML"))); }
public void waitUntilLoggedIn(By element, int timeout) { WebDriverWait wait = new WebDriverWait(Driver.getInstance(), TimeSpan.FromSeconds(timeout)); wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(element)); }
public abstract void ProcessDataNode(IWebDriver webDriver, WebDriverWait webDriverWait);
public void I_MemberAddresses_SetValidAddresses_Successful(string mApartment, string mStreetNumber, string mStreetName, string mCity, string mProvince, string mPostalCode, string sApartment, string sStreetNumber, string sStreetName, string sCity, string sProvince, string sPostalCode, bool sameAsMailing) { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); bool sameAsMailingChecked = true; string shippingAddressTestValue = sApartment + "-" + sStreetNumber + " " + sStreetName + ", " + sCity + ", " + sProvince + ", " + sPostalCode; string mailingAddressTestValue = mApartment + "-" + mStreetNumber + " " + mStreetName + ", " + mCity + ", " + mProvince + ", " + mPostalCode; string[,] mailingTestValues = new string[, ] { { "MailingAddressApartment", mApartment }, { "MailingAddressStreetNumber", mStreetNumber }, { "MailingAddressStreetName", mStreetName }, { "MailingAddressCity", mCity }, { "MailingAddressProvince", mProvince }, { "MailingAddressPostalCode", mPostalCode } }; string[,] shippingTestValues = new string[, ] { { "ShippingAddressApartment", sApartment }, { "ShippingAddressStreetNumber", sStreetNumber }, { "ShippingAddressStreetName", sStreetName }, { "ShippingAddressCity", sCity }, { "ShippingAddressProvince", sProvince }, { "ShippingAddressPostalCode", sPostalCode } }; // navigate to account details NavToManageAccountDetails("Admin", "Qwe!23"); // click edit address details driver.FindElement(By.XPath("//a[@href='/Manage/ChangeAddressDetails']")).Click(); // wait for Change address details page wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h2[text()='Change Address Details']"))); // click clear all driver.FindElement(By.XPath("//button[@onclick='clearAll()']")).Click(); // check to see if same as mailing checkbox is checked string sameAsMailingBox = driver.FindElement(By.XPath("//input[@name='ShippingAddressSame']")).GetAttribute("Checked"); // if it is not checked set sameAsMailingBox to false if (sameAsMailingBox == null) { sameAsMailingChecked = false; } // if shipping address is not same as mailing address and checkbox is checked, uncheck checkbox if (!sameAsMailing) { if (sameAsMailingChecked) { driver.FindElement(By.XPath("//input[@name='ShippingAddressSame']")).Click(); } // fill out shipping address for (int i = 0; i < shippingTestValues.GetLength(0); i++) { if (shippingTestValues[i, 0] == "ShippingAddressProvince") { driver.FindElement(By.XPath("//select[@name='" + shippingTestValues[i, 0] + "']")).Click(); driver.FindElement(By.XPath("//select[@name='" + shippingTestValues[i, 0] + "']//option[text()='" + shippingTestValues[i, 1] + "']")).Click(); } else { driver.FindElement(By.XPath("//input[@name='" + shippingTestValues[i, 0] + "']")).SendKeys(shippingTestValues[i, 1]); } } } // if shipping address is the same and checkbox unchecked, click checkbox if (sameAsMailing && !sameAsMailingChecked) { driver.FindElement(By.XPath("//input[@name='ShippingAddressSame']")).Click(); } // fill out mailing address for (int i = 0; i < mailingTestValues.GetLength(0); i++) { if (mailingTestValues[i, 0] == "MailingAddressProvince") { driver.FindElement(By.XPath("//select[@name='" + mailingTestValues[i, 0] + "']")).Click(); driver.FindElement(By.XPath("//select[@name='" + mailingTestValues[i, 0] + "']//option[text()='" + mailingTestValues[i, 1] + "']")).Click(); } else { driver.FindElement(By.XPath("//input[@name='" + mailingTestValues[i, 0] + "']")).SendKeys(mailingTestValues[i, 1]); } } // click Save driver.FindElement(By.XPath("//input[@type='submit' and @value='Save']")).Click(); // wait for manage your account page wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h2[text()='Manage Your Account']"))); // check mailing address value on Manage account page string mailingAddressValue = driver.FindElement(By.XPath("//td[./b[text()='Mailing Address']]/following-sibling::td")).Text; Assert.AreEqual(mailingAddressValue, mailingAddressTestValue); // check shipping address value on Manage account page string shippingAddressValue = driver.FindElement(By.XPath("//td[./b[text()='Shipping Address']]/following-sibling::td")).Text; Assert.AreEqual(shippingAddressValue, shippingAddressTestValue); }
public void start() { driver = new InternetExplorerDriver(); wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20)); }
public void Test() { _driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); _driver.Manage().Window.Maximize(); _driver.Navigate().GoToUrl("http://demoqa.com/registration/"); //Arrange IWebElement firstName = _driver.FindElement(By.Id("name_3_firstname")); IWebElement lastName = _driver.FindElement(By.Id("name_3_lastname")); //radiobuttons List <IWebElement> status = _driver.FindElements(By.Name("radio_4[]")).ToList(); List <IWebElement> hobby = _driver.FindElements(By.Name("checkbox_5[]")).ToList(); SelectElement country = new SelectElement(_driver.FindElement(By.Id("dropdown_7"))); SelectElement birthMonth = new SelectElement(_driver.FindElement(By.Id("mm_date_8"))); SelectElement birthDay = new SelectElement(_driver.FindElement(By.Id("dd_date_8"))); SelectElement birthYear = new SelectElement(_driver.FindElement(By.Id("yy_date_8"))); IWebElement phone = _driver.FindElement(By.Id("phone_9")); IWebElement userName = _driver.FindElement(By.Id("username")); IWebElement email = _driver.FindElement(By.Id("email_1")); IWebElement description = _driver.FindElement(By.Id("description")); IWebElement pass = _driver.FindElement(By.Id("password_2")); IWebElement passAgain = _driver.FindElement(By.Id("confirm_password_password_2")); IWebElement passOK = _driver.FindElement(By.Id("password_meter")); IWebElement registerMeButton = _driver.FindElement(By.Name("pie_submit")); //RANDOM PHONENUMBER Random phoneNum = new Random(); string number = ""; for (int i = 1; i < 11; i++) { number += phoneNum.Next(0, 9).ToString(); } //RANDOM USERNAME var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var stringChars = new char[10]; var random = new Random(); for (int i = 0; i < stringChars.Length; i++) { stringChars[i] = chars[random.Next(chars.Length)]; } var finalString = new String(stringChars); //RANDOM EMAIL var chars2 = "ABCDEFGHIJKLMNabcdefghijklmnopqrstuvwxyz0123456789"; var stringChars2 = new char[10]; var randomEmail = new Random(); for (int i = 0; i < stringChars2.Length; i++) { stringChars2[i] = chars2[randomEmail.Next(chars2.Length)]; } var finalStringEmail = new String(stringChars2); //RANDOM PASSWORD var chars3 = "ABCDLMNZXCabcdopqtuvwxyz0123456789!@#$%^&*"; var stringChars3 = new char[16]; var randomPass = new Random(); for (int i = 0; i < stringChars3.Length; i++) { stringChars3[i] = chars3[randomPass.Next(chars3.Length)]; } var finalStringPass = new String(stringChars3); //Act WebDriverWait wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(3)); wait.Until(ExpectedConditions.ElementToBeClickable(firstName)); firstName.SendKeys("IvanIvanIvan"); lastName.SendKeys("Family Ivan"); WebDriverWait wait3 = new WebDriverWait(_driver, TimeSpan.FromSeconds(3)); wait3.Until(ExpectedConditions.ElementToBeClickable(status[0])); status[0].Click(); hobby[2].Click(); country.SelectByValue("Bulgaria"); birthMonth.SelectByValue("10"); birthDay.SelectByValue("11"); birthYear.SelectByValue("1969"); phone.SendKeys(number); userName.SendKeys(finalString); email.SendKeys(finalStringEmail + "@gmail.com"); description.SendKeys("This is Written By Selenium Webdriver and I am LHMDAI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); pass.SendKeys(finalStringPass); passAgain.SendKeys(finalStringPass); WebDriverWait wait2 = new WebDriverWait(_driver, TimeSpan.FromSeconds(3)); wait2.Until(ExpectedConditions.ElementToBeClickable(registerMeButton)); Assert.AreEqual("Strong", passOK.Text); registerMeButton.Click(); IWebElement regSuccessfull = _driver.FindElement(By.ClassName("piereg_message")); Assert.AreEqual("Thank you for your registration", regSuccessfull.Text); //Assert //Assert.AreEqual("StrongCHE", passOK.Text); //with this test failed because expected text is 'Strong' }
public BasePage(IWebDriver driver) { this.driver = driver; this.wait = new WebDriverWait(this.driver, TimeSpan.FromSeconds(20)); }
public CreateIssuePage(IWebDriver driver, WebDriverWait wait) { this.driver = driver; this.wait = wait; }
public void H_MemberPreferences_ClearPreferences_Successful(string initialDisplayName, string initialPassword, string[] selectedPreferences) { string[] genreList = new string[] { "Action", "Adventure", "RolePlaying", "Simulation", "Strategy", "Puzzle" }; string[] platformList = new string[] { "PC", "PlayStation", "Xbox", "Nintendo", "Mobile" }; WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); NavToManageAccountDetails(initialDisplayName, initialPassword); // click Edit Account Details button driver.FindElement(By.XPath("//a[@href='/Manage/ChangeAccountDetails']")).Click(); // wait for Edit Account Details page to load wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h2[text()='Edit Account Details']"))); for (int i = 0; i < selectedPreferences.GetLength(0); i++) { var checkedElement = driver.FindElement(By.XPath("//input[@name='" + selectedPreferences[i] + "Checked']")).GetAttribute("checked") ?? string.Empty; if (!string.IsNullOrEmpty(checkedElement)) { driver.FindElement(By.XPath("//input[@name='" + selectedPreferences[i] + "Checked']")).Click(); } } // click Save driver.FindElement(By.XPath("//input[@type='submit' and @value='Save']")).Click(); // wait for manage your account page to load wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h2[text()='Manage Your Account']"))); // check values are not the same as changed values if (genreList == selectedPreferences) { try { var checkedElement = driver.FindElement(By.XPath("//div[@class='col-md-2'][./b[text()='Favorite Game Genres']]/following-sibling::div[contains(text(),'None')]")).Text; if (checkedElement == "None") { Assert.Pass(); } } catch { Assert.Fail(); } } if (platformList == selectedPreferences) { try { var checkedElement = driver.FindElement(By.XPath("//div[@class='col-md-2'][./b[text()='Favorite Platforms']]/following-sibling::div[contains(text(),'None')]")).Text; if (checkedElement == "None") { Assert.Pass(); } } catch { Assert.Fail(); } } }
public void SetupTest() { this.Driver = new FirefoxDriver(); this.Wait = new WebDriverWait(this.Driver, TimeSpan.FromSeconds(5)); }
private static async Task Run() { var browser = new ChromeDriver(); var waiter = new WebDriverWait(browser, TimeSpan.FromSeconds(10)); // access sign page var url = Configuration["SignUrl"]; if (!Uri.IsWellFormedUriString(url, UriKind.Absolute)) { InteractExit("无效配置:SignUrl 应该是一个绝对Uri"); } browser.Url = url; // wait redirection completed and page fully rendered var loginFrame = TryWait(waiter, driver => driver.FindElement(By.Id("loginFrame"))); // rqeuired sign in if (loginFrame != null) { browser.SwitchTo().Frame("loginFrame"); var userNameInput = browser.FindElementById("u"); var passwordInput = browser.FindElementById("p"); var loginButton = browser.FindElementById("go"); var username = Configuration["QQ"]; var password = Configuration["Password"]; if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { InteractExit("无效的QQ或密码"); } userNameInput.SendKeys(username); passwordInput.SendKeys(password); loginButton.Click(); // wait 2s for rendering verification code var verificationCode = TryWait(waiter, driver => driver.FindElement(By.Id("tcaptcha_iframe"))); if (verificationCode != null) { browser.SwitchTo().Frame("tcaptcha_iframe"); var pendingImg = waiter.Until(driver => driver.FindElement(By.Id("slideBg"))); var pendingImgSrc = pendingImg.GetAttribute("src"); var uriBuilder = new UriBuilder(pendingImgSrc); uriBuilder.Query = uriBuilder.Query.Replace("img_index=1", "img_index=0"); var completeImgSrc = uriBuilder.Uri.AbsoluteUri; var slideBlock = browser.FindElementById("slideBlock"); await SlideVerificationCode(pendingImgSrc, completeImgSrc, pendingImg.Size.Width, browser, slideBlock); } } // switch to top browser.SwitchTo().DefaultContent(); var signInBtn = TryWait(waiter, driver => driver.FindElement(By.XPath("/html/body/div[1]/div/div[2]/a"))); signInBtn.Click(); browser.Close(); }
/// <summary> /// A simple helper to delay execution until the named element exists somewhere in the DOM. /// </summary> /// <param name="selector"></param> public void waitForElementToExist(By selector) { WebDriverWait wait = new WebDriverWait(WebContext.WebDriver, BrowserDefaults.TimeOut); wait.Until(ExpectedConditions.ElementExists(selector)); }
private IWebElement FluentWaitForWebElement(int seconds, Func <IWebDriver, IWebElement> conditionToMeet) { var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(seconds)); return(wait.Until(conditionToMeet)); }
public void WaitVisibilityOfElement(long timeToWait, By locator) { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeToWait)); wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(locator)); }
public NotesElementsList(EdgeDriver driver, WebDriverWait wait) { _driver = driver; _wait = wait; }
/// <summary> /// Check if additional pages exist for a datalist to load. If so load the page. /// </summary> /// <returns>Returns true if an additional page was found and clicked, false otherwise.</returns> public static bool AdditionalDatalistPagesExist(string sectionCaption) { WebDriverWait waiter = new WebDriverWait(Driver, TimeSpan.FromSeconds(1)); waiter.IgnoreExceptionTypes(typeof(InvalidOperationException), typeof(StaleElementReferenceException)); bool additionalPage = false; //get current datalist page number int datalistPage = Int32.MaxValue; try { waiter.Until(d => { IWebElement currentDatalistPage = d.FindElement(By.XPath(getXSectionDatalistCurrentPageIndex(sectionCaption))); if (currentDatalistPage != null && currentDatalistPage.Displayed) { datalistPage = Int32.Parse(currentDatalistPage.Text); return(true); } return(false); }); } catch (WebDriverTimeoutException) { return(false); } //see if button exists with higher page index and click it waiter.Until(d => { ICollection <IWebElement> datalistPageButtons = d.FindElements(By.XPath(getXSectionDatalistPageIndexButtons(sectionCaption))); foreach (IWebElement button in datalistPageButtons) { try { int nextPageIndex = Int32.Parse(button.Text); if (button.Displayed && button.Enabled && nextPageIndex == datalistPage + 1) { additionalPage = true; button.Click(); //wait until the current page index is the next page WebDriverWait innerWaiter = new WebDriverWait(Driver, TimeSpan.FromSeconds(TimeoutSecs)); innerWaiter.IgnoreExceptionTypes(typeof(InvalidOperationException), typeof(StaleElementReferenceException)); innerWaiter.Until(dd => { IWebElement currentIndex = d.FindElement(By.XPath(getXSectionDatalistCurrentPageIndex(sectionCaption))); if (currentIndex != null && currentIndex.Displayed && Int32.Parse(currentIndex.Text) == nextPageIndex) { return(true); } return(false); }); return(true); } } catch (FormatException) { } } return(false); }); return(additionalPage); }
// private string url = @"http://localhost:60634/Article/List"; public UserListPage(IWebDriver driver) : base(driver) { // this.driver = driver; this.wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60)); }