/// <summary> /// 是否为假 /// </summary> /// <param name="areInfo"></param> /// <returns></returns> private bool IsFalsePrvFunc(AreInfo areInfo) { try { bool actvalue = new bool(); //获取ele IWebElement ele = new FindWebElement(areInfo.ElementId, _waitUntilAction.Timeout).WebElement; if (ele == null) { if (areInfo.ActualType == "RoWebElement.Displayed") { ComArgs.SigTestStep.ResultStr = "成功"; ComArgs.SigTestStep.Result = true; ComArgs.SigTestStep.ExtraInfo = $"预期值:{areInfo.ExpectedValue}, 实际值:{actvalue}, 实际类型:{areInfo.ActualType}"; actvalue = true; } else { ComArgs.SigTestStep.ResultStr = "失败"; ComArgs.SigTestStep.Result = false; ComArgs.SigTestStep.ExtraInfo = $"查找元素:{areInfo.ElementId}不存在,请仔细检查对应控件"; } } else { switch (areInfo.ActualType) { case "Browser.IsPageLoaded": IJavaScriptExecutor jsExecutor = ComArgs.WebTestDriver as IJavaScriptExecutor; string com = (string)jsExecutor?.ExecuteScript("return document.readyState"); actvalue = com != "complete"; break; case "RoWebElement.Displayed": actvalue = !ele.Displayed; break; case "RoWebElement.Enabled": //还需要区分EasyUI的部分写法 actvalue = !ele.Enabled; break; case "RoWebElement.Selected": actvalue = !ele.Selected; break; } if (actvalue) { ComArgs.SigTestStep.ResultStr = "成功"; ComArgs.SigTestStep.Result = true; ComArgs.SigTestStep.ExtraInfo = $"预期值:{areInfo.ExpectedValue}, 实际值:{actvalue}, 实际类型:{areInfo.ActualType}"; } else { ComArgs.SigTestStep.ResultStr = "失败"; ComArgs.SigTestStep.Result = false; ComArgs.SigTestStep.ExtraInfo = $"预期值:{areInfo.ExpectedValue}, 实际值:{actvalue}, 实际类型:{areInfo.ActualType}"; } } return(actvalue); } catch (WebDriverTimeoutException) { ComArgs.SigTestStep.ResultStr = "失败"; ComArgs.SigTestStep.Result = false; ComArgs.SigTestStep.ExtraInfo = "RoWarlock操作超时"; return(false); } catch (Exception e) { ComArgs.SigTestStep.ResultStr = "异常"; ComArgs.SigTestStep.Result = false; ComArgs.SigTestStep.ExtraInfo = $"类:{GetType().Name}中方法:{MethodBase.GetCurrentMethod().Name}发生异常"; ComArgs.SigTestStep.Message = e.Message; ComArgs.SigTestStep.StackTrace = e.StackTrace; ComArgs.SigTestStep.FullName = e.TargetSite.DeclaringType?.FullName; return(false); } finally { ComArgs.SigTestStep.StepName = _waitUntilAction.ActionType; ComArgs.SigTestStep.ControlId = areInfo.ElementId; _guiViewEvent.OnUiViewSteps(ComArgs.SigTestStep); } }
/// <summary> /// 是否不等 /// </summary> /// <param name="areInfo"></param> /// <returns></returns> private bool AreNotEqualPrvFunc(AreInfo areInfo) { bool re = true; string actV = string.Empty; try { //获取ele IWebElement ele = new FindWebElement(areInfo.ElementId, _waitUntilAction.Timeout).WebElement; if (ele == null) { ComArgs.SigTestStep.ResultStr = "失败"; ComArgs.SigTestStep.Result = false; ComArgs.SigTestStep.ExtraInfo = $"查找元素:{areInfo.ElementId}不存在,请仔细检查对应控件"; } else { //更改预期值为无参数 string expvalue = new ArgsIntoValue().BackNormalString(areInfo.ExpectedValue); List <string> actvalue = new List <string>(); //根据检索不同查询 switch (areInfo.ActualType) { case "Browser.Title": actvalue.Add(ComArgs.WebTestDriver.Title); break; case "Browser.Url": actvalue.Add(ComArgs.WebTestDriver.Url); break; case "RoWebElement.Text": //还需要区分EasyUI的部分写法,不仅是value,还有其他的 actvalue.Add(ele.GetAttribute("value")); actvalue.Add(ele.GetAttribute("innerText")); actvalue.Add(ele.GetAttribute("textContent")); actvalue.Add(ele.GetAttribute("text")); actvalue.Add(ele.Text); break; case "RoWebElement.GetAttribute": actvalue.Add(ele.GetAttribute(areInfo.Name)); break; } //结果检索 foreach (string sigvalue in actvalue) { if (sigvalue != null && sigvalue.Equals(expvalue)) { re = false; actV = sigvalue; break; } } if (re) { ComArgs.SigTestStep.ResultStr = "成功"; ComArgs.SigTestStep.Result = true; ComArgs.SigTestStep.ExtraInfo = $"控件文本预期值:{expvalue}, 实际值:{actV}, 实际类型:{areInfo.ActualType}"; } else { ComArgs.SigTestStep.ResultStr = "失败"; ComArgs.SigTestStep.Result = false; StringBuilder abc = new StringBuilder(); foreach (string one in actvalue) { abc.Append($"{one}/"); } ComArgs.SigTestStep.ExtraInfo = $"控件文本预期值:{expvalue}, 实际值:{abc}, 实际类型:{areInfo.ActualType}"; } } return(re); } catch (WebDriverTimeoutException) { ComArgs.SigTestStep.ResultStr = "失败"; ComArgs.SigTestStep.Result = false; ComArgs.SigTestStep.ExtraInfo = "RoWarlock操作超时"; return(false); } catch (Exception e) { ComArgs.SigTestStep.ResultStr = "异常"; ComArgs.SigTestStep.Result = false; ComArgs.SigTestStep.ExtraInfo = $"类:{GetType().Name}中方法:{MethodBase.GetCurrentMethod().Name}发生异常"; ComArgs.SigTestStep.Message = e.Message; ComArgs.SigTestStep.StackTrace = e.StackTrace; ComArgs.SigTestStep.FullName = e.TargetSite.DeclaringType?.FullName; return(false); } finally { ComArgs.SigTestStep.StepName = _waitUntilAction.ActionType; ComArgs.SigTestStep.ControlId = areInfo.ElementId; _guiViewEvent.OnUiViewSteps(ComArgs.SigTestStep); } }