Example #1
0
        public void WaitToDisappearWaitsForTheElementToDisappear()
        {
            // It seems that Firefox times are very inaccurate, so we expect 400ms+/-200ms (See: https://stackoverflow.com/a/16753220)
            var expectedTimeout = 400.Milliseconds();
            var pageSource      = @"
<html>
<script>
function hideSoon() {
    var el = document.getElementById('myBtn');
    window.setTimeout(function() {
        el.style.display = 'none';
    }, " + expectedTimeout.TotalMilliseconds + @");
}
</script>
<body>
<button id='myBtn' onclick='hideSoon()'>Hide me</button>
</body>
</html>";

            using (var browser = OpenBrowserWithPage(pageSource))
            {
                var btn = browser.WaitForElement(By.Id("myBtn"), "button");

                btn.Click();
                var startTime = DateTime.Now;
                btn.WaitToDisappear(1.Seconds());
                var endTime = DateTime.Now;

                Assert.IsFalse(btn.Displayed, "Button should have disappeared");
                var threshold = 200.Milliseconds();
                WaitTests.AssertTimeoutWithinThreashold(startTime, endTime, threshold, "WaitForDisappear");
            }
        }
Example #2
0
        public void OpenWindowThrowsTimeoutExceptionIfAWindowIsntOpenedAfterSpecifiedTimeout()
        {
            const string pageSource = @"
<html>
<body>
<button id='dummyButton'>Click me</button>
</body>
</html>";

            using (var browser = OpenBrowserWithPage(pageSource))
            {
                var button          = browser.WaitForElement(By.Id("dummyButton"), "Dummy button");
                var startTime       = DateTime.MinValue;
                var expectedTimeout = WaitTests.DefaultWaitTimeoutForUnitTests;
                TestUtils.ExpectException <TimeoutException>(() =>
                                                             browser.OpenWindow(() =>
                {
                    startTime = DateTime.Now;
                    button.Click();
                }, "non existent window", expectedTimeout));     // TODO: use WaitTests's constant after merge with master
                var endTime = DateTime.Now;
                WaitTests.AssertTimeoutWithinThreashold(startTime, endTime, expectedTimeout + WaitTests.DefaultWaitTimeoutForUnitTests, "OpenWindow");
            }
        }