Obtenir XPath de HtmlElement cliqué dans WebBrowserControl

Comment puis-je obtenir le XPath d’un HtmlElement cliqué dans le WebBrowserControl?

Voici comment je récupère le HtmlElement cliqué:

System.Windows.Forms.HtmlDocument document = this.webBrowser1.Document; document.MouseUp += new HtmlElementEventHandler(this.htmlDocument_Click); private void htmlDocument_Click(object sender, HtmlElementEventArgs e) { HtmlElement element = this.webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition); } 

Je souhaite cliquer sur des éléments spécifiques (prix, numéro d’article, description, etc.) sur un site Web et obtenir leurs expressions XPath.

Je vous remercie!

L’expression XPath n’est pas une fonctionnalité standard du HTML (contrairement à XML). Si vous souhaitez obtenir un élément XPath que vous pourrez utiliser ultérieurement avec Html Agility Pack , vous avez au moins deux options:

  1. HtmlElement.Parent arbre d’ascendance DOM de l’élément à l’aide de HtmlElement.Parent et construisez manuellement XPath.

  2. Utilisez HTML Agility Pack lui-même et faites quelque chose comme ceci (non testé):

 HtmlElement element = this.webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition); var savedId = element.Id; var uniqueId = Guid.NewGuid().ToSsortingng(); element.Id = uniqueId; var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(element.Document.GetElementsByTagName("html")[0].OuterHtml); element.Id = savedId; var node = doc.GetElementbyId(uniqueId); var xpath = node.XPath;