private void treeSchemas_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { var node = treeSchemas.GetNodeAt(e.X, e.Y); if (node != null) if ((node.Name.IndexOf("ROOT_") > -1) || (node.Name.IndexOf("SCHEMA_") > -1)) { treeSchemas.SelectNode(node, eTreeAction.Mouse); if (node.Name.IndexOf("ROOT_") > -1) { 修改方案ToolStripMenuItem.Enabled = false; 添加方案ToolStripMenuItem.Enabled = true; 设为执行方案ToolStripMenuItem.Enabled = false; } else { 修改方案ToolStripMenuItem.Enabled = true; 添加方案ToolStripMenuItem.Enabled = false; 设为执行方案ToolStripMenuItem.Enabled = true; } SeleniumSchemaEntity seleniumSchemaEntity = null; if (node.Tag != null) seleniumSchemaEntity = (SeleniumSchemaEntity) node.Tag; LoadSchema(seleniumSchemaEntity); menuStrip.Show(MousePosition.X, MousePosition.Y); } } }
private void LoadSchema(SeleniumSchemaEntity seleniumSchemaEntity) { if (seleniumSchemaEntity != null) { txtSchemaID.Text = seleniumSchemaEntity.Id; txtSchemaName.Text = seleniumSchemaEntity.Name; StaticValue.LoadSeleniumSchema(dgvSelenium, seleniumSchemaEntity); } else { txtSchemaID.Text = ""; txtSchemaName.Text = ""; } }
/// <summary> /// 获取所有自动化测试方案 /// </summary> /// <param name="tree"></param> public static void GetAllSeleniumSchema(AdvTree tree, String selectNodeId) { tree.Nodes.Clear(); Node nodeRoot = new Node(); nodeRoot.Name = "ROOT_" + Guid.NewGuid().ToString(); nodeRoot.Text = " 所有测试方案"; Node selectNode = null; XmlDocument doc = new XmlDocument(); doc.Load(MSeleniumSchemaPath); nodeRoot.Expanded = true; List <XmlNode> nodeList = doc.SelectNodes("//Schema").ToList <XmlNode>(); if (nodeList.Count > 0) { nodeList.ForEach(o => { SeleniumSchemaEntity seleniumSchemaEntity = new SeleniumSchemaEntity(); seleniumSchemaEntity.Id = o.Attributes["ID"].Value; seleniumSchemaEntity.Name = o.Attributes["Name"].Value; seleniumSchemaEntity.IsExecute = o.Attributes["Execute"] != null && Convert.ToBoolean(o.Attributes["Execute"].Value); Node nodeChild = new Node(); nodeChild.Name = "SCHEMA_" + seleniumSchemaEntity.Id; nodeChild.Text = seleniumSchemaEntity.Name; nodeChild.Tag = seleniumSchemaEntity; if (selectNodeId.Equals(seleniumSchemaEntity.Id)) { selectNode = nodeChild; } if (seleniumSchemaEntity.IsExecute) { ElementStyle style = new ElementStyle(); style.TextColor = Color.Red; nodeChild.Style = style; nodeChild.Text = nodeChild.Text + "(执行方案)"; } nodeRoot.Nodes.Add(nodeChild); }); } tree.Nodes.Add(nodeRoot); if (selectNode != null) //选中节点 { tree.SelectNode(selectNode, eTreeAction.Mouse); } }
/// <summary> /// 设置为当前执行的方案 /// </summary> /// <param name="seleniumSchemaEntity"></param> public static void SetExecuteSeleniumSchema(SeleniumSchemaEntity seleniumSchemaEntity) { XmlDocument docSchema = new XmlDocument(); docSchema.Load(MSeleniumSchemaPath); List <XmlNode> nodeSchemaList = docSchema.SelectNodes("//Schema").ToList <XmlNode>(); nodeSchemaList.ForEach(p => { XmlElement elementP = p as XmlElement; if (p.Attributes["ID"].Value.Equals(seleniumSchemaEntity.Id)) { elementP.SetAttribute("Execute", "true"); } else { elementP.SetAttribute("Execute", "false"); } }); docSchema.Save(MSeleniumSchemaPath); }
private void btnSave_Click(object sender, EventArgs e) { try { if (String.IsNullOrEmpty(txtSchemaName.Text)) { MessageBox.Show("请输入自动化测试方案名称!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } StaticValue.SaveSeleniumSchema(txtSchemaID.Text, txtSchemaName.Text); if (ISeleniumSchemaInterface != null) { SeleniumSchemaEntity seleniumSchemaEntity = new SeleniumSchemaEntity(); seleniumSchemaEntity.Id = txtSchemaID.Text; seleniumSchemaEntity.Name = txtSchemaName.Text; ISeleniumSchemaInterface.SeleniumSchemaCallBack(seleniumSchemaEntity); } MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception er) { MessageBox.Show(er.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
public void SeleniumSchemaCallBack(SeleniumSchemaEntity seleniumSchemaEntity) { StaticValue.GetAllSeleniumSchema(treeSchemas, seleniumSchemaEntity.Id); LoadSchema(seleniumSchemaEntity); }
/// <summary> /// 加载所有方案 /// </summary> /// <param name="dgv"></param> public static void LoadSeleniumSchema(DataGridView dgv, SeleniumSchemaEntity seleniumSchemaEntity) { XmlDocument document = new XmlDocument(); document.Load(MProdefListXmlPath); DataTable dt = new DataTable(); dt.Columns.Add("ProdefID"); dt.Columns.Add("ProdefName"); dt.Columns.Add("PropackageName"); dt.Columns.Add("ChildProdefId"); dt.Columns.Add("ChildProdefName"); dt.Columns.Add("SELECT"); XmlNodeList nodeProdefParent = document.SelectNodes("//Prodef"); if (nodeProdefParent != null) { List <XmlNode> nodeProdefList = nodeProdefParent.ToList <XmlNode>(); nodeProdefList = nodeProdefList.Where(p => p.HasChildNodes).ToList(); //只选择配置了方案的 nodeProdefList.ForEach(o => { o.ChildNodes.ToList <XmlNode>().ForEach(p => { DataRow dr = dt.NewRow(); dr["ProdefID"] = o.Attributes["ID"].Value.ToString(); dr["ProdefName"] = o.Attributes["Name"].Value.ToString(); dr["PropackageName"] = o.Attributes["PackageName"].Value.ToString(); dr["ChildProdefID"] = p.Attributes["ID"].Value.ToString(); dr["ChildProdefName"] = p.Attributes["Name"].Value.ToString(); dr["SELECT"] = false; dt.Rows.Add(dr); }); }); } //加载已有的配置,默认选中状态 XmlDocument docSchema = new XmlDocument(); docSchema.Load(MSeleniumSchemaPath); XmlNode xmlNodeSchema = docSchema.SelectSingleNode("//Schema[@ID='" + seleniumSchemaEntity.Id + "']"); if (xmlNodeSchema != null) { dt.AsEnumerable().ToList().ForEach(p => { if (xmlNodeSchema.SelectSingleNode("Prodef[@ID='" + p["ProdefID"] + "']/ProdefChild[@ID='" + p["ChildProdefID"] + "']") != null) { p["SELECT"] = true; } else { p["SELECT"] = false; } }); } dgv.DataSource = dt; if (dt.Rows.Count > 0) { dgv.Rows[0].Selected = false; dgv.CurrentCell = null; } }