public IMessage SyncProcessMessage(IMessage msg) { try { IMethodCallMessage mcm = (msg as IMethodCallMessage); // Check if Selenium Log Trace attribute is applied SeleniumLogTraceAttribute[] attrs = (SeleniumLogTraceAttribute[])mcm.MethodBase.GetCustomAttributes(typeof(SeleniumLogTraceAttribute), true); // Execute the Pre Method Processing for (int i = 0; i < attrs.Length; i++) { attrs[i].MethodCallHandler.PreMethodExecutionProcess(ref mcm); } this.PreMethodExecution(ref mcm); IMessage rtnMsg = _nextSink.SyncProcessMessage(msg); IMethodReturnMessage mrm = (rtnMsg as IMethodReturnMessage); // Execute the Pre Method Processing for Selenium Log Attribute for (int i = 0; i < attrs.Length; i++) { attrs[i].MethodCallHandler.PostMethodExecutionProcess(mcm, ref mrm); } this.PostMethodExecution(msg as IMethodCallMessage, ref mrm); return(mrm); } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-10 - " + e.Message); return(null); } }
internal void PrintValues(IMethodCallMessage msg) { try { SeleniumLog log = SeleniumLog.Instance(); log.Blue().WriteLine("Expand to view input parameters"); log.SaveIndent("__SELENIUMLOG_PRINT_INPUTS__"); log.Indent(); int argumentIndex = 0; foreach (var arg in msg.Args) { // Display Values for custom attribute CURRENT_ARGUMENT_NAME = msg.GetInArgName(argumentIndex); DispalyInformation(CURRENT_ARGUMENT_NAME, arg); argumentIndex++; } log.RestoreIndent("__SELENIUMLOG_PRINT_INPUTS__"); } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-18 - " + e.Message); } }
private void OnScriptExecuted(object sender, WebDriverScriptEventArgs webDriverScriptEventArgs) { SeleniumLog log = SeleniumLog.Instance(); if (log.Config.OnScriptExecute_LogAfterEvent) { log.Indent(); log.Debug("[Selenium Event] Script Executed Successfully!", take_screenshot: log.Config.OnScriptExecute_TakeScreenshotAfterEvent); log.Unindent(); } }
private void OnScriptExecuting(object sender, WebDriverScriptEventArgs webDriverScriptEventArgs) { SeleniumLog log = SeleniumLog.Instance(); if (log.Config.OnScriptExecute_LogBeforeEvent) { log.Indent(); log.Debug("[Selenium Event] Script Executing: " + webDriverScriptEventArgs.Script, take_screenshot: log.Config.OnScriptExecute_TakeScreenshotBeforeEvent); log.Unindent(); } }
private void OnNavigatedForward(object sender, WebDriverNavigationEventArgs webDriverNavigationEventArgs) { SeleniumLog log = SeleniumLog.Instance(); if (log.Config.OnNavigatingForward_LogAfterEvent) { log.Indent(); log.Debug("[Selenium Event] Navigate Forward Success!", take_screenshot: log.Config.OnNavigatingForward_TakeScreenshotAfterEvent); log.Unindent(); } }
private void OnNavigatingForward(object sender, WebDriverNavigationEventArgs webDriverNavigationEventArgs) { SeleniumLog log = SeleniumLog.Instance(); if (log.Config.OnNavigatingForward_LogBeforeEvent) { log.Indent(); log.Debug("[Selenium Event] Navigating Forward: " + webDriverNavigationEventArgs.Url, take_screenshot: log.Config.OnNavigatingForward_TakeScreenshotBeforeEvent); log.Unindent(); } }
private void OnFindingElementCompleted(object sender, FindElementEventArgs findElementEventArgs) { SeleniumLog log = SeleniumLog.Instance(); if (log.Config.OnFindElement_LogAfterEvent) { log.Indent(); log.Debug("[Selenium Event] Element Found!", take_screenshot: log.Config.OnFindElement_TakeScreenshotAfterEvent); log.Unindent(); } }
private void OnElementClicking(object sender, WebElementEventArgs webElementEventArgs) { SeleniumLog log = SeleniumLog.Instance(); if (log.Config.OnClick_LogBeforeEvent) { log.Indent(); log.Debug("[Selenium Event] Clicking Element: " + _locator, take_screenshot: log.Config.OnClick_TakeScreenshotBeforeEvent); log.Unindent(); } }
public SeleniumLogTraceAttribute(bool enabled = true) { try { this._methodCallHandler = new SeleniumLogTraceHandler(enabled); } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-03 - " + e.Message); } }
private void OnElementClicked(object sender, WebElementEventArgs webElementEventArgs) { //Console.WriteLine("ElementClicked: " + webElementEventArgs.Element); SeleniumLog log = SeleniumLog.Instance(); if (log.Config.OnClick_LogAfterEvent) { log.Indent(); log.Debug("[Selenium Event] Click Success!", take_screenshot: log.Config.OnClick_TakeScreenshotAfterEvent); log.Unindent(); } }
/// <summary> /// Explores any data structure and display the entire tree of elements and values in the log. Works with Lists, Stacks, Queues, etc., or any combination thereof. /// </summary> /// <param name="arg">The data structure to be explored.</param> /// <param name="comment">Optional string to be displayed in the log.</param> public void Explore(object arg, string comment = "") { SeleniumLog log = SeleniumLog.Instance(); log.SaveIndent("ExploreParams"); PrintParameters printParameters = new PrintParameters(); printParameters.PrintValues(arg, comment); log.RestoreIndent("ExploreParams"); //log.MessageSettings.indentModel.SimulateIndentations(MessageSettings.MessageStr); log.MessageSettings1.GetPendingLevel(); }
public override void GetPropertiesForNewContext( System.Runtime.Remoting.Activation.IConstructionCallMessage ctorMsg) { try { ctorMsg.ContextProperties.Add(new InterceptProperty()); } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-07 - " + e.Message); } }
public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink) { try { IMessageCtrl rtnMsgCtrl = _nextSink.AsyncProcessMessage(msg, replySink); return(rtnMsgCtrl); } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-11 - " + e.Message); return(null); } }
private void OnFindingElement(object sender, FindElementEventArgs findElementEventArgs) { SeleniumLog log = SeleniumLog.Instance(); string[] FindMethodStr = findElementEventArgs.FindMethod.ToString().Split(':'); _by = FindMethodStr[0].Split('.')[1].Trim(); _locator = FindMethodStr[1].Trim(); if (log.Config.OnFindElement_LogBeforeEvent) { log.Indent(); log.Debug("[Selenium Event] Finding Element: " + _locator, take_screenshot: log.Config.OnFindElement_TakeScreenshotBeforeEvent); log.Unindent(); } }
internal static FieldInfo[] GetPublicFields(object arg) { try { Type type = arg.GetType(); BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance; return(type.GetFields(flags)); } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-17 - " + e.Message); return(null); } }
public void DisplayResults() { SeleniumLog log = SeleniumLog.Instance(); foreach (Result result in Results) { if (result.result == true) { log.Green().Pass().WriteLine(result.cummulative_xpath + " - XPath Found - " + result.matches + " matches."); } else { log.Red().Fail().WriteLine(result.cummulative_xpath + " - XPath Not Found!"); } } }
public void Process(IMethodCallMessage callMsg, ref IMethodReturnMessage retMsg) { if (_enabled) { SeleniumLog log = SeleniumLog.Instance(); try { //_stopwatch.Stop(); log.Blue().WriteLine(string.Format("Return value: {0}", retMsg.ReturnValue)); log.RestoreIndent("__SELENIUMLOG_INDENT__"); } catch (Exception e) { log.Warning().WriteLine("SeleniumLog Exception: 01-05 - " + e.Message); } } }
private void PostMethodExecution(IMethodCallMessage callMsg, ref IMethodReturnMessage rtnMsg) { try { PostMethodExecutionAttribute[] attrs = (PostMethodExecutionAttribute[]) callMsg.MethodBase.GetCustomAttributes(typeof(PostMethodExecutionAttribute), true); for (int i = 0; i < attrs.Length; i++) { attrs[i].MethodCallHandler.Process(callMsg, ref rtnMsg); } } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-13 - " + e.Message); } }
private void DispalyInformation(string argumentName, object arg) { try { SeleniumLog log = SeleniumLog.Instance(); // Display data structure if (arg == null) { if (log.Config.FunctionTrace_DisplayNullInputs == true) { log.Pink().WriteLine(argumentName + " [NULL]"); } } else { if (ParameterProcessor.CheckIfEnumerable(arg)) { //log.Red().WriteLine("Property: " + argumentName); log.Blue().WriteLine(argumentName + " :"); log.SaveIndent("__DISPLAY_ARRAY__"); log.Indent(); int i = 0; foreach (var iterateValue in (IEnumerable)arg) { ManageCustomDataStructure(argumentName, iterateValue, 1, i); i++; } log.RestoreIndent("__DISPLAY_ARRAY__"); } else { // Display property (simple structure) ManageCustomDataStructure(argumentName, arg, 0); } } } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); if (log.Config.Enable_Generic_Function_Trace == true) { log.Warning().WriteLine("SeleniumLog Exception: 01-19 - " + e.Message); } } }
private void OnElementValueChanged(object sender, WebElementEventArgs webElementEventArgs) { SeleniumLog log = SeleniumLog.Instance(); if (log.Config.OnChangeValue_LogAfterEvent) { log.SaveIndent("OnElementValueChanged"); log.Indent(); log.Debug("[Selenium Event] Successfully changed value [" + webElementEventArgs.Element.GetAttribute("value") + "]", take_screenshot: log.Config.OnChangeValue_TakeScreenshotAfterEvent); log.Unindent(); if (!string.IsNullOrEmpty(_keyInput)) { //log.WriteLine("Input was: " + _keyInput); } log.RestoreIndent("OnElementValueChanged"); } }
internal static bool CheckIfCustomType(Type type) { try { if (type.Namespace != null && !type.Namespace.ToLowerInvariant().Contains("system")) { return(true); } return(false); } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-15 - " + e.Message); return(false); } }
public void Process(ref IMethodCallMessage msg) { SeleniumLog log = SeleniumLog.Instance(); try { log.Blue().WriteLine("FUNCTION CALL: " + msg.MethodBase); log.SaveIndent("__SELENIUMLOG_INDENT__"); log.Indent(); PrintParameters printParameters = new PrintParameters(); printParameters.PrintValues(msg); } catch (Exception e) { log.Warning().WriteLine("SeleniumLog Exception: 01-04 - " + e.Message); } }
public override bool IsNewContextOK(Context newCtx) { try { InterceptProperty p = newCtx.GetProperty("Intercept") as InterceptProperty; if (p == null) { return(false); } return(true); } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-09 - " + e.Message); return(false); } }
private void OnElementValueChanging(object sender, WebElementEventArgs webElementEventArgs) { SeleniumLog log = SeleniumLog.Instance(); if (log.Config.OnChangeValue_LogBeforeEvent) { log.SaveIndent("OnElementValueChanging"); log.Indent(); if (!string.IsNullOrEmpty(_keyInput)) { log.Debug("[Selenium Event] Element value changing to [" + _keyInput + "]", take_screenshot: log.Config.OnChangeValue_TakeScreenshotBeforeEvent); } else { log.Debug("[Selenium Event] Element value changing to - NULL or EMPTY - ", take_screenshot: log.Config.OnChangeValue_TakeScreenshotBeforeEvent); } log.RestoreIndent("OnElementValueChanging", debug: true); } }
private void OnExceptionThrown(object sender, WebDriverExceptionEventArgs webDriverExceptionEventArgs) { SeleniumLog log = SeleniumLog.Instance(); if (log.Config.OnWebdriverExceptionThrown_LogEvent) { log.Indent(); log.Error().Red().Debug("[Selenium Event] Exception Thrown: " + webDriverExceptionEventArgs.ThrownException, take_screenshot: true); if (_by == "XPath") { log.Red().Debug("Running XPath Diagnostics: Expand to see which part of XPath failed."); log.Indent(); XPathTest.Test(driver, _locator); XPathTest.DisplayResults(); log.Unindent(); } log.Unindent(); } }
public override bool IsContextOK(Context ctx, System.Runtime.Remoting.Activation.IConstructionCallMessage ctorMsg) { try { InterceptProperty p = ctx.GetProperty("Intercept") as InterceptProperty; if (p == null) { return(false); } return(true); } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-08 - " + e.Message); return(false); } }
public void PostMethodExecutionProcess(IMethodCallMessage callMsg, ref IMethodReturnMessage retMsg) { SeleniumLog log = SeleniumLog.Instance(); try { if (_enabled) { _stopwatch.Stop(); log.Blue().WriteLine(string.Format("Return value: {0}", retMsg.ReturnValue)); log.Blue().WriteLine(string.Format("Duration: {0} msec", _stopwatch.ElapsedMilliseconds)); //log.RestoreIndent("__SELENIUMLOG_INDENT__"); log.RestoreIndent("__PRE_METHOD_EXECUTION_PROCESS_1_"); } } catch (Exception e) { log.Warning().WriteLine("SeleniumLog Exception: 01-02 - " + e.Message); } }
public static SeleniumLog Instance(IWebDriver webdriver = null, bool overwrite = true, bool debug = false) { //get { //lock (padlock) { if (instance == null) { instance = new SeleniumLog(webdriver: webdriver, overwrite: overwrite, debug: debug); } else { if (webdriver != null) { instance.driver = webdriver; } } return(instance); } } }
internal static bool CheckIfEnumerable(object variable) { try { if (variable is string) { return(false); } //if (typeof(IEnumerable).IsAssignableFrom(p.PropertyType)) if (variable.GetType().GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IEnumerable <>))) { return(true); } return(false); } catch (Exception e) { SeleniumLog log = SeleniumLog.Instance(); log.Warning().WriteLine("SeleniumLog Exception: 01-14 - " + e.Message); return(false); } }
public void PreMethodExecutionProcess(ref IMethodCallMessage msg) { SeleniumLog log = SeleniumLog.Instance(); try { if (_enabled) { _stopwatch.Start(); log.Blue().WriteLine("FUNCTION CALL: " + msg.MethodBase); log.SaveIndent("__PRE_METHOD_EXECUTION_PROCESS_1_"); log.Indent(); log.SaveIndent("__PRE_METHOD_EXECUTION_PROCESS_2_"); PrintParameters printParameters = new PrintParameters(); printParameters.PrintValues(msg); log.RestoreIndent("__PRE_METHOD_EXECUTION_PROCESS_2_"); } } catch (Exception e) { log.Warning().WriteLine("SeleniumLog Exception: 01-01 - " + e.Message); } }
public static SeleniumLog Instance(IWebDriver webdriver = null, bool overwrite = true, bool debug = false) { //get { //lock (padlock) { if (instance == null) { instance = new SeleniumLog(webdriver: webdriver, overwrite: overwrite, debug: debug); } else { if (webdriver != null) { instance.driver = webdriver; } } return instance; } } }