예제 #1
0
        public override IElement GetElement(string fieldSelector, MatchConditions conditions)
        {
            var element = _driver.FindElement(BySizzle.CssSelector(fieldSelector));

            ValidateElement(element, fieldSelector, conditions);

            return(new Element(_driver, element, fieldSelector));
        }
예제 #2
0
        public override void ClickWithin(string selector, Point point)
        {
            var container = _driver.FindElement(BySizzle.CssSelector(selector));

            (new OpenQA.Selenium.Interactions.Actions(_driver))
            .MoveToElement(container, point.X, point.Y)
            .Click()
            .Build()
            .Perform();
        }
예제 #3
0
        public override void Navigate(Uri pageUri)
        {
            if (_driver == null)
            {
                _driver = getCurrentDriver();
            }

            _driver.Navigate().GoToUrl(pageUri);
            BySizzle.EnsureSizzleIsLoaded((IJavaScriptExecutor)_driver);
        }
예제 #4
0
 public IWebElement GetWebElement(bool fetchNew)
 {
     if (fetchNew)
     {
         return(_driver.FindElement(BySizzle.CssSelector(_fieldSelector)));
     }
     else
     {
         return(_element);
     }
 }
예제 #5
0
        public override IElement[] GetElements(string fieldSelector, MatchConditions conditions)
        {
            var elements = _driver.FindElements(BySizzle.CssSelector(fieldSelector));

            foreach (var element in elements)
            {
                ValidateElement(element, fieldSelector, conditions);
            }

            return(elements.Select(e => new Element(_driver, e, fieldSelector)).ToArray());
        }
예제 #6
0
        public override void Upload(string fileName, string fieldSelector, API.Point offset, MatchConditions conditions)
        {
            if (_browserType == BrowserType.InternetExplorer)
            {
                throw new FeatureNotImplementedException("SeleniumWebDriver+InternetExplorer File Upload");
            }

            var element = _driver.FindElement(BySizzle.CssSelector(fieldSelector));
            var t       = System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                // Dirty I know.. Need to guarantee the dialog opens before we start sending key events.
                int sleepTime = 0;
                switch (_browserType)
                {
                case BrowserType.Firefox:
                    sleepTime = 1000;
                    break;

                case BrowserType.Chrome:
                    sleepTime = 1500;
                    break;
                }

                Thread.Sleep(sleepTime);
                CommandManager.SendString(fileName + "~");
            }, System.Threading.Tasks.TaskCreationOptions.LongRunning);

            if (offset == null)
            {
                element.Click();
            }
            else
            {
                this.ClickWithin(fieldSelector, offset);
            }

            t.Wait();
        }