public static void WaitReload(this IEntityButtonContainer container, Action action) { var ticks = container.TestTicks() !.Value; action(); container.Element.GetDriver().Wait(() => container.TestTicks().Let(t => t != null && t != ticks)); }
public static void WaitReload(this IEntityButtonContainer container, Action action) { var ticks = container.TestTicks().Value; action(); container.Selenium.Wait(() => container.TestTicks().Let(t => t != null && t != ticks)); }
public static FrameModalProxy <T> ConstructFrom <F, T>(this IEntityButtonContainer <F> container, ConstructSymbol <T> .From <F> symbol) where T : Entity where F : Entity { var element = container.OperationClickCapture(symbol); return(new FrameModalProxy <T>(element).WaitLoaded()); }
public static NormalPage <T> ConstructFromNormalPageSaved <F, T>(this IEntityButtonContainer <F> container, ConstructSymbol <T> .From <F> symbol) where T : Entity where F : Entity { container.OperationClick(symbol); return(new NormalPage <T>(container.Selenium, null).WaitLoaded()); }
public static NormalPage <T> OperationNormalPageNew <T>(this IEntityButtonContainer container, IOperationSymbolContainer symbol) where T : Entity { container.ButtonClick(symbol.Symbol.KeyWeb()); container.Selenium.Wait(() => { try { return(container.RuntimeInfo().IsNew); } catch { return(false); } }); return(new NormalPage <T>(container.Selenium, null)); }
public static FramePageProxy <T> ConstructFromNormalPage <F, T>(this IEntityButtonContainer <F> container, ConstructSymbol <T> .From <F> symbol) where T : Entity where F : Entity { container.OperationClick(symbol); container.Element.GetDriver().Wait(() => { try { return(container.EntityInfo().IsNew); } catch { return(false); } }); return(new FramePageProxy <T>(container.Element.GetDriver())); }
public static NormalPage <T> ConstructFromNormalPageNew <F, T>(this IEntityButtonContainer <F> container, ConstructSymbol <T> .From <F> symbol) where T : Entity where F : Entity { container.OperationClick(symbol); container.Selenium.Wait(() => { try { return(container.RuntimeInfo().IsNew); } catch { return(false); } }); return(new NormalPage <T>(container.Selenium, null)); }
public static long?RefreshCount(this IEntityButtonContainer container) { try { return(container.Element.TryFindElement(By.CssSelector("div.sf-main-control[data-refresh-count]"))?.GetAttribute("data-refresh-count").ToLong()); } catch { return(null); } }
public static PopupControl <T> OperationPopup <T>(this IEntityButtonContainer container, IOperationSymbolContainer symbol, string prefix = "New") where T : ModifiableEntity { container.ButtonClick(symbol.Symbol.KeyWeb()); var popup = new PopupControl <T>(container.Selenium, prefix); container.Selenium.WaitElementPresent(popup.PopupLocator); return(popup); }
public static long?TestTicks(this IEntityButtonContainer container) { try { return(container.Element.TryFindElement(By.CssSelector("div.sf-main-control[data-test-ticks]"))?.GetAttribute("data-test-ticks").ToLong()); } catch { return(null); } }
public static long?TestTicks(this IEntityButtonContainer container) { try { return(((string)container.Selenium.ExecuteScript("return $ && $('#" + container.PrefixUnderscore() + "divMainControl').attr('data-test-ticks')")).ToLong()); } catch { return(null); } }
public static void WaitReload(this IEntityButtonContainer container, Action action) { var oldCount = container.RefreshCount() !.Value; action(); container.Element.GetDriver().Wait(() => { var newCount = container.RefreshCount(); return(newCount != null && newCount != oldCount); }); }
public static PopupControl <T> ConstructFromPopup <F, T>(this IEntityButtonContainer <F> container, ConstructSymbol <T> .From <F> symbol, string prefix = "New") where T : Entity where F : Entity { container.OperationClick(symbol); var popup = new PopupControl <T>(container.Selenium, prefix); container.Selenium.WaitElementPresent(popup.PopupLocator); return(popup); }
public static void ExecuteAjax <T>(this IEntityButtonContainer <T> container, ExecuteSymbol <T> symbol, bool consumeAlert = false) where T : Entity { container.WaitReload(() => { container.OperationClick(symbol); if (consumeAlert) { container.Selenium.ConsumeAlert(); } }); }
public static WebElementLocator OperationButton(this IEntityButtonContainer container, OperationSymbol symbol, string?groupId = null) { if (groupId != null) { var groupButton = container.Element.WaitElementVisible(By.Id(groupId)); if (groupButton.GetAttribute("aria-expanded") != "true") { groupButton.Click(); } return(container.ContainerElement().WithLocator(By.CssSelector($"a[data-operation='{symbol.Key}']"))); } return(container.ContainerElement().WithLocator(By.CssSelector($"button[data-operation='{symbol.Key}']"))); }
public static void Execute <T>(this IEntityButtonContainer <T> container, ExecuteSymbol <T> symbol, bool consumeAlert = false, bool checkValidationErrors = true) where T : Entity { container.WaitReload(() => { container.OperationClick(symbol); if (consumeAlert) { container.Element.GetDriver().CloseMessageModal(MessageModalButton.Yes); } }); var vs = container as IValidationSummaryContainer; if (checkValidationErrors && vs != null) { AssertNoErrors(vs); } }
public static void OperationClick <T>(this IEntityButtonContainer <T> container, IEntityOperationSymbolContainer <T> symbol) where T : Entity { container.ButtonClick(symbol.Symbol.KeyWeb()); }
public static void ButtonClick(this IEntityButtonContainer container, string idButton) { var button = container.Selenium.FindElement(container.ButtonLocator(idButton)); button.ButtonClick(); }
public static bool OperationDisabled <T>(this IEntityButtonContainer <T> container, IEntityOperationSymbolContainer <T> symbol) where T : Entity { return(container.ButtonDisabled(symbol.Symbol.KeyWeb())); }
public static bool ButtonDisabled(this IEntityButtonContainer container, string idButton) { By locator = container.ButtonLocator(idButton); return(container.Selenium.IsElementPresent(locator.CombineCss("[disabled]"))); }
public static By OperationLocator <T>(this IEntityButtonContainer <T> container, IEntityOperationSymbolContainer <T> symbol) where T : Entity { return(container.ButtonLocator(symbol.Symbol.KeyWeb())); }
public static By ButtonLocator(this IEntityButtonContainer container, string buttonId) { return(container.ContainerLocator().CombineCss(" #" + "_".CombineIfNotEmpty(container.Prefix, buttonId))); }
public static IWebElement OperationClickCapture <T>(this IEntityButtonContainer <T> container, IEntityOperationSymbolContainer <T> symbol) where T : Entity { return(container.OperationClickCapture(symbol.Symbol)); }
public static bool OperationDisabled(this IEntityButtonContainer container, OperationSymbol symbol) { return(container.OperationButton(symbol).Find().GetAttribute("disabled") != null); }
public static bool HasChanges(this IEntityButtonContainer container) { return(container.Selenium.IsElementPresent(By.CssSelector("#{0}divMainControl.sf-changed".FormatWith(container.PrefixUnderscore())))); }
public static WebElementLocator OperationButton <T>(this IEntityButtonContainer <T> container, IEntityOperationSymbolContainer <T> symbol) where T : Entity { return(container.OperationButton(symbol.Symbol)); }
public static void OperationClick(this IEntityButtonContainer container, OperationSymbol symbol) { container.OperationButton(symbol).Find().ButtonClick(); }
public static IWebElement OperationClickCapture(this IEntityButtonContainer container, OperationSymbol symbol) { return(container.OperationButton(symbol).Find().CaptureOnClick()); }
public static WebElementLocator OperationButton(this IEntityButtonContainer container, OperationSymbol symbol) { return(container.ContainerElement().WithLocator(By.CssSelector($"button[data-operation='{symbol.Key}']"))); }
public static Lite <T> GetLite <T>(this IEntityButtonContainer <T> container) where T : Entity { return((Lite <T>)container.RuntimeInfo().ToLite()); }