private static void WriteResult(ResultCheck resultCheck , string resultFileName , string comparisonResult , string executionValue) { var context = new ContextForAutoTest(); var resultStr = new AutoTestResult(); resultStr.ExpectedContent = resultCheck.Description; resultStr.ConfirmationTarget = SetConfirmationTaget(resultCheck); resultStr.ExpectedValue = resultCheck.ExpectedValue; resultStr.ExecutionValue = executionValue; resultStr.ComparisonResult = comparisonResult; WriteResult(resultString: resultStr, ResultFileName: resultFileName); WriteLog( logFileName: Parameters.ExtendedAutoTestSettings.LogFileName, logMessage: Displays.AutoTestResultMessage( context: context, data: new string[] { resultStr.ComparisonResult, resultStr.ExpectedContent, resultStr.ConfirmationTarget, resultStr.ExpectedValue, resultStr.ExecutionValue }), consoleColor: SelectConsoleColor(resultStr.ComparisonResult) ); }
private static string GetExecutionValue(IWebDriver driver , ResultCheck resultCheck) { var executionValue = (string)null; if (!resultCheck.ItemId.IsNullOrEmpty()) { IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor; if (!Exists(driver, resultCheck.ItemId)) { return(executionValue); } if (resultCheck.ItemId.StartsWith("Check")) { executionValue = jsDriver.ExecuteScript($"return $p.getControl('{resultCheck.ItemId}').prop('checked');") .ToString(); } else { executionValue = jsDriver.ExecuteScript($"return $p.getControl('{resultCheck.ItemId}').val();") .ToString(); if (executionValue.IsNullOrEmpty() && !jsDriver.ExecuteScript($"return $p.getControl('{resultCheck.ItemId}').prop('tagName');") .ToString() .Equals("SELECT")) { executionValue = jsDriver.ExecuteScript($"return $p.getControl('{resultCheck.ItemId}').text();") .ToString(); } } } else { if (driver.FindElement(SelectItem(resultCheck)).TagName.Equals("select")) { var selectElement = new SelectElement(driver.FindElement(SelectItem(resultCheck))); if (resultCheck.CheckType.Equals(CheckTypes.SelectOptions)) { executionValue = string.Join(",", selectElement.Options .Where(o => !o.Text.Equals(" ")) .Select(o => o.Text).ToList()); } else { executionValue = selectElement.SelectedOption.Text; } } else { executionValue = driver.FindElement(SelectItem(resultCheck)).Text; if (executionValue.IsNullOrEmpty()) { executionValue = driver.FindElement(SelectItem(resultCheck)).GetAttribute("value"); } } } return(executionValue); }
private static string GetLabelText(IWebDriver driver, ResultCheck resultCheck) { IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor; return(jsDriver.ExecuteScript( $"return $p.getField('{resultCheck.ItemId}').find('label').text();").ToString()); }
/// <summary> /// check_device /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { richTextBox1.Text = string.Empty; string result = SSTest.Comm.Query.check_device("1", "fackbook", "1"); ResultCheck resultmodel = CommMeth.JsonDeserialize <ResultCheck>(result); richTextBox1.Text = result; }
private static string ReadOnly(IWebDriver driver, ResultCheck resultCheck) { IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor; return(jsDriver.ExecuteScript($@" if ($p.getControl('{resultCheck.ItemId}').attr('data-readonly')) {{ return 'ReadOnlyTrue'; }} else {{ return 'ReadOnlyFalse'; }}").ToString()); }
private static bool CanReadRecordOnGrid( IWebDriver driver, ResultCheck resultCheck) { IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor; jsDriver.ExecuteScript($"$('#ViewFilters_Reset').click()"); jsDriver.ExecuteScript($"$p.data.MainForm.ViewFilters__ResultId='{resultCheck.ItemId}'"); jsDriver.ExecuteScript($"$p.data.MainForm.ViewFilters__IssueId='{resultCheck.ItemId}'"); jsDriver.ExecuteScript($"$p.send($('#Grid'))"); return(driver.FindElements(By.CssSelector($"[data-id=\"{resultCheck.ItemId}\"]")).Count == 1); }
private static bool SelectOptions(IWebDriver driver, ResultCheck resultCheck, string executionValue) { var executionValueList = executionValue .Split(',') .ToList(); var expectedList = resultCheck.ExpectedValue .Split(',') .ToList(); executionValueList.Sort(); expectedList.Sort(); return(expectedList.SequenceEqual(executionValueList)); }
private static bool CanCrossSearchRecord( IWebDriver driver, ResultCheck resultCheck) { IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor; jsDriver.ExecuteScript($"$p.set($('#Search'),'{resultCheck.SearchString}')"); IWebElement element = driver.FindElement(By.Id("Search")); element.SendKeys(Keys.Return); Thread.Sleep(resultCheck.WaitTime); return(driver.FindElements(By.CssSelector($"[href=\"/items/{resultCheck.ItemId}/edit?back=1\"]")).Count == 1); }
private static bool CanReadRecordOnEditor( IWebDriver driver, ResultCheck resultCheck) { var url = string.Empty; if (!resultCheck.ItemId.IsNullOrEmpty()) { var recordId = resultCheck.ItemId; url = $"{Parameters.ExtendedAutoTestSettings.Url}items/{recordId}"; } driver.Navigate().GoToUrl(url); Thread.Sleep(resultCheck.WaitTime); return(driver.FindElements(By.Id("HeaderTitle")).Count() == 1); }
public static void CheckResult( IWebDriver driver, ResultCheck resultCheck, string resultFileName) { if (!resultCheck.ExpectedValue.IsNullOrEmpty()) { resultCheck.ExecutionValue = GetExecutionValue(driver, resultCheck); } WriteResult( resultCheck, resultFileName, ComparisonValue(driver, resultCheck), resultCheck.ExecutionValue); }
private static string SetConfirmationTaget(ResultCheck resultCheck) { if (!resultCheck.ItemId.IsNullOrEmpty()) { return(resultCheck.ItemId); } else if (!resultCheck.ElementId.IsNullOrEmpty()) { return(resultCheck.ElementId); } else if (!resultCheck.ElementLinkText.IsNullOrEmpty()) { return(resultCheck.ElementLinkText); } else { return(resultCheck.ElementXpath); } }
private static By SelectItem(ResultCheck resultCheck) { if (!resultCheck.ElementId.IsNullOrEmpty()) { return(By.Id(resultCheck.ElementId)); } else if (!resultCheck.ElementXpath.IsNullOrEmpty()) { return(By.XPath(resultCheck.ElementXpath)); } else if (!resultCheck.ElementCss.IsNullOrEmpty()) { return(By.CssSelector(resultCheck.ElementCss)); } else { return(By.PartialLinkText(resultCheck.ElementLinkText)); } }
private static bool DataRequired(IWebDriver driver, ResultCheck resultCheck) { IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor; if (!resultCheck.ItemId.IsNullOrEmpty()) { return(jsDriver.ExecuteScript($@" if ($p.getControl('{resultCheck.ItemId}')) {{ return $p.getControl('{resultCheck.ItemId}').attr('data-validate-required'); }} else {{ return false; }}").ToBool()); } else { return(jsDriver.ExecuteScript($@" if ($('{resultCheck.ElementCss}')) {{ return $('{resultCheck.ElementCss}').attr('data-validate-required'); }} else {{ return false; }}").ToBool()); } }
private static bool HasClass(IWebDriver driver, ResultCheck resultCheck) { IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor; if (!resultCheck.ItemId.IsNullOrEmpty()) { return(jsDriver.ExecuteScript($@" if ($p.getControl('{resultCheck.ItemId}')) {{ return $p.getControl('{resultCheck.ItemId}').hasClass('{resultCheck.ExpectedValue}'); }} else {{ return false; }}").ToBool()); } else { return(jsDriver.ExecuteScript($@" if ($('{resultCheck.ElementCss}')) {{ return $('{resultCheck.ElementCss}').hasClass('{resultCheck.ExpectedValue}'); }} else {{ return false; }}").ToBool()); } }
private static string ComparisonValue( IWebDriver driver, ResultCheck resultCheck) { var context = new ContextForAutoTest(); if (resultCheck.CheckType.Equals(CheckTypes.Regex)) { if (Regex.IsMatch(resultCheck.ExecutionValue, resultCheck.ExpectedValue)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.Existance)) { resultCheck.ExecutionValue = resultCheck.ExecutionValue == null ? "ExistanceFalse" : "ExistanceTrue"; if (resultCheck.ExecutionValue.Equals(resultCheck.ExpectedValue)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.HasClass)) { if (HasClass(driver, resultCheck)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.HasNotClass)) { if (!HasClass(driver, resultCheck)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.ReadOnly)) { resultCheck.ExecutionValue = ReadOnly(driver, resultCheck); if (resultCheck.ExecutionValue.Equals(resultCheck.ExpectedValue)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.DataRequiredTrue)) { if (DataRequired(driver, resultCheck)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.DataRequiredFalse)) { if (!DataRequired(driver, resultCheck)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.CanReadRecordOnGrid)) { if (CanReadRecordOnGrid(driver, resultCheck)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.CanNotReadRecordOnGrid)) { if (!CanReadRecordOnGrid(driver, resultCheck)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.CanUpdateRecordOnEditor)) { if (CanReadRecordOnEditor(driver, resultCheck) && CanUpdateRecordOnEditor(driver)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.CanReadRecordOnEditor)) { if (CanReadRecordOnEditor(driver, resultCheck) && !CanUpdateRecordOnEditor(driver)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.CanNotReadRecordOnEditor)) { if (!CanReadRecordOnEditor(driver, resultCheck)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.CanCrossSearchRecord)) { if (CanCrossSearchRecord(driver, resultCheck)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.CanNotCrossSearchRecord)) { if (!CanCrossSearchRecord(driver, resultCheck)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.SelectOptions)) { if (SelectOptions(driver, resultCheck, resultCheck.ExecutionValue)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else if (resultCheck.CheckType.Equals(CheckTypes.Label)) { resultCheck.ExecutionValue = GetLabelText(driver, resultCheck); if (resultCheck.ExecutionValue.Equals(resultCheck.ExpectedValue)) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } else { if (resultCheck.ExecutionValue == resultCheck.ExpectedValue) { return(Displays.AutoTestResultOk(context: context)); } else { return(Displays.AutoTestResultNg(context: context)); } } }