public void WaitNewChanges(string changes, string actionDescription) { Selenium.Wait(() => GetChanges() != changes, () => "Waiting for changes after {0} in {1}".FormatWith(actionDescription, Prefix)); }
public static void StartSelenium() { Selenium.Start(); IsSeleniumStarted = true; }
public void SetUpMethods() { _mainPage = Selenium.OpenSite(); }
public void Remove(int index) { Selenium.FindElement(RemoveLocatorIndex(index)).Click(); }
public List <Lite <Entity> > GetDataElements() { return(Selenium.FindElements(By.CssSelector("#" + this.Prefix + " input[type=checkbox]")).Select(cb => RuntimeInfoProxy.FromFormValue(cb.GetAttribute("value")).ToLite(cb.GetParent().Text)).ToList()); }
public void MoveDown(int index) { Selenium.FindElement(By.CssSelector("#{0}_{1}_btnDown".FormatWith(Prefix, index))).Click(); }
public int ItemsCount() { return((int)(long)Selenium.ExecuteScript("return $('#{0}_sfItemsContainer li.sf-strip-element').length".FormatWith(ItemsContainerLocator))); }
public void SelectIndex(int index) { WaitChanges(() => Selenium.FindElement(ComboLocator).SelectElement().SelectByIndex(index + 1), "ComboBox selected"); }
public bool HasEntity() { return(Selenium.IsElementPresent(DivSelector.CombineCss(" *:first-child"))); }
public PopupControl <T> View <T>() where T : ModifiableEntity { Selenium.FindElement(ViewLocator).Click(); return(base.ViewPopup <T>(null)); }
public void SelectLabel(string label) { WaitChanges(() => Selenium.FindElement(ComboLocator).SelectElement().SelectByText(label), "ComboBox selected"); }
public bool HasEntity() { return(Selenium.IsElementVisible(LinkLocator)); }
protected RuntimeInfoProxy RuntimeInfoInternal(int?index = null) { return(RuntimeInfoProxy.FromFormValue(Selenium.FindElement(RuntimeInfoLocatorInternal(index)).GetAttribute("value"))); }
public string GetChanges() { return((string)Selenium.ExecuteScript("return $('#{0}').attr('changes')".FormatWith(Prefix))); }
public override int ItemsCount() { return((int)(long)Selenium.ExecuteScript("return $('#{0}_sfItemsContainer li').length".FormatWith(ItemsContainerLocator))); }
public bool HasEntity(int index) { return(Selenium.IsElementPresent(OptionIdLocator(index))); }
public void WaitItemLoaded(int index) { Selenium.WaitElementPresent(StripItemSelector(index)); }
public int ItemsCount() { return((int)(long)Selenium.ExecuteScript("return $('#{0}_sfList option').length".FormatWith(Prefix))); }
public bool HasEntity(int index) { return(Selenium.IsElementPresent(StripItemSelector(index))); }
public void DoubleClick(int index) { Select(index); Selenium.FindElement(OptionIdLocator(index)).DoubleClick(); }
public override int?NewIndex() { var result = (string)Selenium.ExecuteScript("return $('#{0}_sfItemsContainer li.sf-strip-element').get().map(function(a){{return parseInt(a.id.substr('{0}'.length + 1));}}).join()".FormatWith(Prefix)); return(string.IsNullOrEmpty(result) ? 0 : result.Split(',').Select(int.Parse).Max() + 1); }
public bool HasDetailEntity() { return(Selenium.FindElements(DetailsDivSelector.CombineCss(" *")).Any()); }
public PopupControl <T> View <T>(int index) where T : ModifiableEntity { Selenium.FindElement(ViewLocatorIndex(index)).Click(); return(this.ViewPopup <T>(index)); }
public bool HasEntity(int index) { return(Selenium.IsElementPresent(RepeaterItemSelector(index)));; }
public void Click() { Selenium.Click(_selector); }
public virtual int HiddenItemsCount() { return((int)(long)Selenium.ExecuteScript("return $('{0} fieldset.hidden').length".FormatWith(ItemsContainerLocator.CssSelector()))); }
public static void StopSelenium() { Selenium.Stop(); IsSeleniumStarted = false; }
public override void MoveUp(int index) { Selenium.FindElement(By.CssSelector("#{0}_{1}_btnUp".FormatWith(Prefix, index))).Click(); }
public override object DoRun() { var query = new LocationHeuristictSearchStrategy(Selenium); var result = query.DirectLookup(SearchedTagNames, VisibleTextOfTheButton, NeighbourToLookFrom, Direction, Order, LookForOrthogonalNeighboursOnly, exactMatchOnly: true); if (Interpreter?.IsAnalysis == true) { Console.Out.WriteColoredLine(ConsoleColor.Magenta, _instruction?.ToAnalysisString()); Console.Out.WriteColoredLine(ConsoleColor.Magenta, $"Main Result: \n\t{result.MainResult}\nAll results:\n\t{string.Join("\n\t", result.AllValidResults)}"); } if (result.Success == false) { throw new LookupFailureException(result, $"Failed {ToString()}.\nCannot find element {(Order > 0 ? (Order + 1).ToString() : "")}({result.AllValidResults.Count()} results found)"); } switch (Technique) { case Technique.Show: BrowserOverlay .HighlightElements((Order + 1).ToString(), Color.GreenYellow, result.MainResult) .HighlightElements((Order + 1).ToString(), Color.CadetBlue, result.AllValidResults.Except(new[] { result.AllValidResults.ElementAt(Order) })) .ShowUntilNextKeyword("Highlighted element will be Clicked"); return(new OverlayAnswer(BrowserOverlay.Artifacts, "Highlighting complete.")); case Technique.Javascript: Selenium.WebDriver.Click(result.MainResult.WebElement); break; case Technique.MouseAndKeyboard: Selenium.BringToFront(); var screenLocation = Selenium.PutElementOnScreen(result.MainResult.WebElement); if (Interpreter?.IsAnalysis == true) { BrowserOverlay .HighlightElements((Order + 1).ToString(), Color.GreenYellow, result.MainResult) .ShowFor(750, "Highlighted element will be Dragged"); } UserInteropAdapter.PressOnPoint(Selenium.BrowserHandle, screenLocation); if (Interpreter.IsAnalysis) { var oldPosition = Cursor.Position; var tempPoint = new Point(screenLocation.X, screenLocation.Y); UserBindings.ClientToScreen(Selenium.BrowserHandle, ref tempPoint); Cursor.Position = tempPoint; var steps = 50m; var xOffset = X / steps; var yOffset = Y / steps; for (int i = 0; i < steps; i++) { Cursor.Position = new Point((int)(tempPoint.X + i * xOffset), (int)(tempPoint.Y + i * yOffset)); Thread.Sleep(30); } Cursor.Position = oldPosition; } screenLocation.X += X; screenLocation.Y += Y; Thread.Sleep(20); UserInteropAdapter.ReleaseOnPoint(Selenium.BrowserHandle, screenLocation); Thread.Sleep(50); break; } return(new SuccessAnswer($"Performed {ToString()}")); }
public void Remove() { WaitChanges(() => Selenium.FindElement(RemoveLocator).Click(), "removing"); }