void methodComboBox_SelectedIndexChanged(object sender, EventArgs e) { var currentElement = action.GetElement(); if (currentElement == null) { valueTextBox.Text = ""; return; } FindMethods value = (FindMethods)Enum.Parse(typeof(FindMethods), methodComboBox.SelectedItem.ToString(), true); switch (value) { case FindMethods.ProximityText: valueTextBox.Text = Title; break; case FindMethods.Alt: case FindMethods.Class: case FindMethods.For: case FindMethods.Href: case FindMethods.Id: case FindMethods.Index: case FindMethods.Name: case FindMethods.Src: case FindMethods.Title: case FindMethods.Url: case FindMethods.Value: //case FindMethods.Style: if (currentElement.Exists) { valueTextBox.Text = currentElement.GetAttributeValue(value.ToString()); } break; case FindMethods.XPath: if (currentElement.Exists) { valueTextBox.Text = XPathFinder.GetXPath(currentElement); } break; case FindMethods.CssSelector: if (currentElement.Exists) { valueTextBox.Text = currentElement.GetAttributeValue("__selector"); } break; case FindMethods.Text: if (currentElement.Exists) { valueTextBox.Text = currentElement.Text; } break; default: break; } }
void strip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { ToolStripMenuItem item = e.ClickedItem as ToolStripMenuItem; IHTMLElement element = item.Tag as IHTMLElement; switch (item.Name) { case "copyHTML": Clipboard.SetText(element.outerHTML); break; case "copyInnerHTML": Clipboard.SetText(element.innerHTML); break; case "copyXPATH": Clipboard.SetText(XPathFinder.GetXPath(element, true)); break; case "delete": TreeNode node = this.SelectedNode; if (node != null) { IHTMLDOMNode domNode = node.Tag as IHTMLDOMNode; domNode.parentNode.removeChild(domNode); node.Remove(); } break; default: break; } }
private void UpdateXPath(IHTMLElement element) { string path = ""; if (typeComboBox.SelectedIndex == 0) { path = XPathFinder.GetXPath(element, true); } else { path = this.Selector.GetCssPath(element, false); } this.xpathBox.Text = path; }
public bool Recognize(ScriptObject so) { string[] arr = so.Similarity.Split(",".ToArray()); var inputs = Context.Browser.GetElementsByTag("input"); List <string> inputXPaths = new List <string>(); foreach (var o in inputs) { string xpath = XPathFinder.GetXPath(o); inputXPaths.Add(xpath.GetHashCode().ToString()); } //var inputs = context.Browser.TextFields.Select(c => XPathFinder.GetXPath(c).GetHashCode().ToString()).ToArray(); return(arr.Intersect(inputXPaths).Count() > 0); }
public virtual void AddGridRow(IHTMLElement element) { int RowIndex = gridElement.RowsCount++; gridElement[RowIndex, 0] = new Cell(FindMethods.XPath.ToString(), new TextBox(typeof(string))); var id = element.getAttribute("id", 0) == null ? "" : element.getAttribute("id", 0).ToString(); gridElement[RowIndex, 1] = new Cell(id, new TextBox(typeof(string))); var val = XPathFinder.GetXPath(element); gridElement[RowIndex, 2] = new Cell(val, new TextBox(typeof(string))); var btnDelete = new Button(""); gridElement[RowIndex, 3] = btnDelete; var bmpDelete = new Bitmap(ucBaseElement.GetIconFullPath("db-Delete.bmp")); bmpDelete.MakeTransparent(Color.Fuchsia); gridElement[RowIndex, 3].Image = bmpDelete; var buttonClickEvent = new SourceGrid.Cells.Controllers.Button(); buttonClickEvent.Executed += DeleteFindButton_Click; gridElement[RowIndex, 3].Controller.AddController(buttonClickEvent); }