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 SeleniumLogEventListener(IWebDriver driver) : base(driver) { SeleniumLog log = SeleniumLog.Instance(); FindingElement += new EventHandler <FindElementEventArgs>((sender, findElementEventArgs) => { log.Indent(); log.WriteLine("Finding Element: " + findElementEventArgs.FindMethod); string[] FindMethodStr = findElementEventArgs.FindMethod.ToString().Split(':'); _by = FindMethodStr[0].Split('.')[1].Trim(); _locator = FindMethodStr[1].Trim(); if (_by == "XPath") { XPathTest.Test(driver, _locator); } log.Unindent(); }); FindElementCompleted += new EventHandler <FindElementEventArgs>((sender, findElementEventArgs) => { log.Indent(); log.Green().WriteLine("... Element Found! Elapsed time 10 msec."); log.Unindent(); }); ElementClicking += new EventHandler <WebElementEventArgs>((sender, webElementEventArgs) => { //string nameOfParam1 = MemberInfoGetting.GetMemberName(() => webElementEventArgs.Element); log.Indent(); //log.Orange().WriteLine("Clicking Element: " + webElementEventArgs.Element); log.WriteLine("Clicking Element: " + _by + " " + _locator); log.Unindent(); }); ElementClicked += new EventHandler <WebElementEventArgs>((sender, webElementEventArgs) => { //string nameOfParam1 = MemberInfoGetting.GetMemberName(() => webElementEventArgs.Element); log.Indent(); log.Green().WriteLine("... Click Success! Elapsed time: 10 msec "); log.Unindent(); }); ElementValueChanging += new EventHandler <WebElementEventArgs>((sender, webElementEventArgs) => { int level = log.IndentLevel; log.Indent(); log.WriteLine("Typing in Edit box ..."); if (!string.IsNullOrEmpty(_keyInput)) { log.WriteLine(" [" + _keyInput + "]"); } log.Unindent(); }); ElementValueChanged += new EventHandler <WebElementEventArgs>((sender, webElementEventArgs) => { log.Indent(); log.Green().WriteLine("... Successfully entered in Edit box [" + webElementEventArgs.Element.GetAttribute("value") + "]"); log.Indent(); if (!string.IsNullOrEmpty(_keyInput)) { //log.WriteLine("Input was: " + _keyInput); } }); ExceptionThrown += new EventHandler <WebDriverExceptionEventArgs>((sender, webDriverExceptionEventArgs) => { log.Indent(); log.Red().WriteLine("Exception Thrown: " + webDriverExceptionEventArgs.ThrownException); log.Red().WriteLine("Diagnostics: Expand to see which part of XPath failed."); log.Indent(); XPathTest.DisplayResults(); log.Unindent(); log.Unindent(); }); Navigating += new EventHandler <WebDriverNavigationEventArgs>((sender, webDriverNavigationEventArgs) => { log.Indent(); log.WriteLine("Navigating To: " + webDriverNavigationEventArgs.Url); log.Unindent(); }); Navigated += new EventHandler <WebDriverNavigationEventArgs>((sender, webDriverNavigationEventArgs) => { log.Indent(); log.Green().WriteLine("... Navigation Success! Elapsed time 30 msec"); log.Unindent(); }); NavigatingBack += new EventHandler <WebDriverNavigationEventArgs>((sender, webDriverNavigationEventArgs) => { log.Indent(); log.WriteLine("Navigating Back: " + webDriverNavigationEventArgs.Url); log.Unindent(); }); NavigatedBack += new EventHandler <WebDriverNavigationEventArgs>((sender, webDriverNavigationEventArgs) => { log.Indent(); log.Green().WriteLine("... Navigate Back Success! Elapsed time 20 msec"); log.Unindent(); }); NavigatingForward += new EventHandler <WebDriverNavigationEventArgs>((sender, webDriverNavigationEventArgs) => { log.Indent(); log.WriteLine("Navigating Forward: " + webDriverNavigationEventArgs.Url); log.Unindent(); }); NavigatedForward += new EventHandler <WebDriverNavigationEventArgs>((sender, webDriverNavigationEventArgs) => { log.Indent(); log.Green().WriteLine("... Navigate Forward Success! Elapsed time 30 msec."); log.Unindent(); }); ScriptExecuting += new EventHandler <WebDriverScriptEventArgs>((sender, webDriverScriptEventArgs) => { log.Indent(); log.WriteLine("Script Executing: " + webDriverScriptEventArgs.Script); log.Unindent(); }); ScriptExecuted += new EventHandler <WebDriverScriptEventArgs>((sender, webDriverScriptEventArgs) => { log.Indent(); log.Green().WriteLine("... Script Executed Successfully! Elapsed time 10 msec"); log.Unindent(); }); }
private bool ManageCustomDataStructure(string argumentName, object arg, int elem_counter = -1, int type = -1, string comment = "") { SeleniumLog log = SeleniumLog.Instance(); log.SaveIndent("ManageCustomDataStructure"); //log.Purple().WriteLine("ManageCustomDataStructure()"); //log.Indent(); // Display Dictionary and Sorted List values if (arg == null) { if (log.Config.FunctionTrace_DisplayNullInputs == true) { log.Gray().WriteLine(string.Format("{0} {1} : [NULL]", argumentName, elem_counter)); } log.RestoreIndent("ManageCustomDataStructure"); return(false); } if (CheckParameterType.CheckIfDictionary(arg) || CheckParameterType.CheckIfSortedList(arg)) { DispalyInformation(argumentName: argumentName, elem_counter: elem_counter, arg: arg); log.RestoreIndent("ManageCustomDataStructure"); return(true); } // Display HashTable values else if (CheckParameterType.CheckIfHashTable(arg)) { DispalyInformation(argumentName: argumentName, elem_counter: elem_counter, arg: arg); log.RestoreIndent("ManageCustomDataStructure"); return(true); } // Display Enumerable values else if (CheckParameterType.CheckIfEnumerable(arg)) { DispalyInformation(argumentName: argumentName, elem_counter: elem_counter, arg: arg); log.RestoreIndent("ManageCustomDataStructure"); return(true); } else if (CheckParameterType.CheckIfCustomType(arg.GetType())) { var properties = CheckParameterType.GetPublicProperties(arg); //Console.WriteLine(argumentName + ":"); //log.SaveIndent("_______CustomType1________"); //log.Red().WriteLine("type: " + type + " argumentName - " + argumentName + " : count = " + elem_counter); if (type == 4) { //log.Red().WriteLine("30 type 4 : " + comment); log.Purple().WriteLine(comment); log.Indent(); } //log.Indent(); if (properties.Any()) { log.SaveIndent("_______CustomType1________"); //log.Green("type " + type + " properties.Any(): " + argumentName + " " + elem_counter + " :"); log.Green(argumentName + " " + elem_counter + " :"); int m = 0; foreach (PropertyInfo property in properties) { //log.SaveIndent("_______CustomType1________"); //log.Blue().WriteLine(argumentName + ":"); //log.Indent(); var propertyValue = property.GetValue(arg, null) ?? "null"; //DispalyInformation(property.Name, propertyValue); DispalyInformation(argumentName: property.Name, elem_counter: m, arg: propertyValue); m++; //log.RestoreIndent("_______CustomType1________"); } log.RestoreIndent("_______CustomType1________"); } var fields = CheckParameterType.GetPublicFields(arg); if (fields.Any()) { if (debug) { log.Green("37 type " + type + " fields.Any(): " + argumentName + " " + elem_counter + " :"); } else { log.Purple(argumentName + " " + elem_counter + " :"); } log.SaveIndent("_______FieldsAny______"); log.Indent(); int k = 0; foreach (FieldInfo field in fields) { log.SaveIndent("_______CustomType2________"); //log.Indent(); var fieldValue = field.GetValue(arg) ?? "null"; //DispalyInformation(field.Name, fieldValue); DispalyInformation(argumentName: field.Name, elem_counter: k, arg: fieldValue); k++; log.RestoreIndent("_______CustomType2________"); } //log.Red().WriteLine("loop 2 done"); log.RestoreIndent("_______FieldsAny______"); } log.RestoreIndent("ManageCustomDataStructure"); return(true); } //Console.WriteLine(string.Format("{0}:{1}", argumentName, arg)); if (type == 1) { if (debug) { log.Purple().WriteLine(string.Format("100 type" + type + " {0} [{1}]", argumentName, arg)); } else { log.Purple().WriteLine(string.Format("{0} [{1}]", argumentName, arg)); } } else if (type == 2) { if (debug) { log.Purple().WriteLine(string.Format("101 type {0}: key [{1}] value [{2}]", type, argumentName, arg)); } else { log.Purple().WriteLine(string.Format("key [{1}] value [{2}]", type, argumentName, arg)); } } else if (type == 3) { if (debug) { log.Purple().WriteLine(string.Format("102 type" + type + " [{0}]", arg)); } else { log.Purple().WriteLine(string.Format("[{0}]", arg)); } } else if (type == 4) { // not a data structure, so don't parse if (debug) { log.Purple().WriteLine(string.Format("103 type" + type + " {0} [{1}]", argumentName, arg)); } else { log.Purple().WriteLine(string.Format("{0} [{1}]", argumentName, arg)); } //return false; } log.RestoreIndent("ManageCustomDataStructure"); return(false); }