Exemplo n.º 1
0
        static public IWebElement FindElementRecursion(IWebDriver driver, string Xpathstring)
        {
            //Frist find element
            By Element = By.XPath(Xpathstring);
            By IFrame  = By.XPath("//iframe|frame");

            //IF current IFrame can not find element
            if (!JSupport.IsElementExist(driver, Element, 2))
            {
                //Search all of Iframe
                if (JSupport.IsElementExist(driver, IFrame, 2))
                {
                    var IFrameElements = driver.FindElements(IFrame);
                    foreach (IWebElement item in IFrameElements)
                    {
                        driver.SwitchTo().Frame(item);
                        FindElementRecursion(driver, Xpathstring);
                    }
                }
                else
                {
                    driver.SwitchTo().ParentFrame();
                }
                return(element);
            }
            else
            {
                return(element = driver.FindElement(Element));
            }
        }
Exemplo n.º 2
0
        public static void CommonVariable(ref string Tvalue, ref string Target, ref string sType)
        {
            string Key, Value;

            //1.Tvalue
            if (Tvalue.Contains("@生成") || Tvalue.Contains("@释放"))
            {
                Key   = Tvalue.Split('-')[0];
                Value = Tvalue.Split('-')[1];
                switch (Key)
                {
                case "@生成":
                    switch (Value)
                    {
                    case "姓名":
                        Tvalue = Tvalue.CreateCnName();
                        break;

                    case "邮箱":
                        Tvalue = Tvalue.CreateEmail();
                        break;

                    case "手机号":
                        Tvalue = Tvalue.CreatePhoneNumber();
                        break;

                    case "身份证号":
                        Tvalue = Tvalue.CreateID();
                        break;

                    default:
                        throw new ArgumentOutOfRangeException(string.Format("✘:Tvalue生成变量集合命令中不存在:{0}", Value));
                    }
                    break;

                case "@释放":
                    switch (Value)
                    {
                    case "姓名":
                        Tvalue = DataList.Get("姓名");
                        break;

                    case "邮箱":
                        Tvalue = DataList.Get("邮箱");
                        break;

                    case "手机号":
                        Tvalue = DataList.Get("手机号");
                        break;

                    case "身份证号":
                        Tvalue = DataList.Get("身份证号");
                        break;

                    default:
                        try {
                            Tvalue = DataList.Get(Tvalue);
                        }
                        catch {
                            throw new Exception(string.Format("✘:Tvalue释放变量集合中不存在:{0}", Value));
                        }
                        break;
                    }
                    break;

                default:
                    throw new ArgumentOutOfRangeException(string.Format("✘:Tvalue命令集合中不存在:{0}", Key));
                }
            }
            //2.Target
            if (!string.IsNullOrEmpty(Target) && (Target.Contains("@释放") || Target.Contains("@索引")))
            {
                var Save = new List <string>(Target.Split('|')).FindAll(x => x.Contains("@"));
                foreach (string item in Save)
                {
                    Key   = item.Split('-')[0];
                    Value = item.Split('-')[1];
                    switch (Key)
                    {
                    case "@释放":
                        switch (Value)
                        {
                        case "姓名":
                            Tvalue = DataList.Get("姓名");
                            break;

                        case "邮箱":
                            Tvalue = DataList.Get("邮箱");
                            break;

                        case "手机号":
                            Tvalue = DataList.Get("手机号");
                            break;

                        case "身份证号":
                            Tvalue = DataList.Get("身份证号");
                            break;

                        default:
                            try
                            {
                                Target = DataList.Get(Tvalue);
                            }
                            catch
                            {
                                throw new Exception(string.Format("✘:Target释放变量集合中不存在:{0}", Value));
                            }
                            break;
                        }
                        break;

                    case "@索引":
                        JSupport.Index = Value;
                        Target         = Target.Remove(Target.IndexOf('|'));
                        break;

                    default:
                        throw new ArgumentOutOfRangeException(string.Format("✘:Target命令集合中不存在:{0}", Key));
                    }
                }
            }
            //3.sType
            if (!string.IsNullOrEmpty(sType) && sType.Contains("@保存") || sType.Contains("@切入") || sType.Contains("@Debug"))
            {
                var Save = new List <string>(sType.Split('|')).FindAll(x => x.Contains("@保存") || x.Contains("@切入") || x.Contains("@Debug"));
                foreach (string item in Save)
                {
                    Key   = item.Split('-')[0];
                    Value = item.Split('-')[1];
                    switch (Key)
                    {
                    case "@保存":
                        switch (Value)
                        {
                        case "姓名":
                            DataList.Set("姓名", Tvalue);
                            break;

                        case "邮箱":
                            DataList.Set("邮箱", Tvalue);
                            break;

                        case "手机号":
                            DataList.Set("手机号", Tvalue);
                            break;

                        case "身份证号":
                            DataList.Set("身份证号", Tvalue);
                            break;

                        default:
                            DataList.Set(Value, Tvalue);
                            break;
                        }
                        break;

                    case "@切入":
                        JSupport.SwitchIFrame(SXDXWeb.driver, Value);
                        break;

                    case "@Debug":
                        WebUI.WebUIDebug(Tvalue, Target);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException(string.Format("✘:sType命令集合中不存在:{0}", Key));
                    }
                }
            }
        }