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)); } }
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)); } } } }