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);
 }
Exemple #2
2
        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();
            }
        }
Exemple #3
1
 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;
            }
        }
Exemple #6
0
 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);
        }
Exemple #9
0
        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")));
 }
Exemple #12
0
 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);
        }
Exemple #15
0
        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());
        }
Exemple #18
0
        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);
        }
Exemple #19
0
        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;
 }
Exemple #21
0
        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;
 }
Exemple #30
0
        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();
        }
Exemple #31
0
        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);
            }
        }
Exemple #32
0
        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);
        }
Exemple #33
0
 public CartPage(IWebDriver driver, WebDriverWait wait)
 {
     _driver = driver;
     _wait   = wait;
     Init();
 }
 protected BasePage(IWebDriver driver, WebDriverWait wait)
 {
     _driver = driver;
     _wait   = wait;
 }
Exemple #35
0
 public DashboardPage(IWebDriver driver)
 {
     this.driver = driver;
     wait        = new WebDriverWait(driver, TimeSpan.FromSeconds(60));
 }
Exemple #36
0
        //IWebDriver Driver = new FirefoxDriver();


        public BrowserObject(string browserName)
        {
            BrowserTypeSet(browserName);
            wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(15));
        }
Exemple #37
0
 public static void StartDriver()
 {
     driverInstance = new ChromeDriver();
     browserWait    = new WebDriverWait(driverInstance, new TimeSpan(0, 0, 120));
 }
Exemple #38
0
        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);
Exemple #42
0
 public DepartmentsFilterSection(IWebDriver driver, WebDriverWait wait) : base(driver, wait)
 {
 }
Exemple #43
0
 protected BasePage(IWebDriver driver, WebDriverWait wait, Actions actions)
 {
     this.driver  = driver;
     this.wait    = wait;
     this.actions = actions;
 }
Exemple #44
0
        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);
Exemple #47
0
        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);
        }
Exemple #48
0
 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;
 }
Exemple #52
0
        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();
                }
            }
        }
Exemple #53
0
 public void SetupTest()
 {
     this.Driver = new FirefoxDriver();
     this.Wait   = new WebDriverWait(this.Driver, TimeSpan.FromSeconds(5));
 }
Exemple #54
0
        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));
        }
Exemple #56
0
        private IWebElement FluentWaitForWebElement(int seconds, Func <IWebDriver, IWebElement> conditionToMeet)
        {
            var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(seconds));

            return(wait.Until(conditionToMeet));
        }
Exemple #57
0
        public void WaitVisibilityOfElement(long timeToWait, By locator)
        {
            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeToWait));

            wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(locator));
        }
Exemple #58
0
 public NotesElementsList(EdgeDriver driver, WebDriverWait wait)
 {
     _driver = driver;
     _wait   = wait;
 }
Exemple #59
0
        /// <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));
        }