Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }