- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何从 WebBrowserControl 中单击的 HtmlElement 获取 XPath?
这就是我检索点击的 HtmlElement 的方式:
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);
}
我想点击网站上的特定元素(价格、商品编号、描述等)并获取它们的 XPath 表达式。
谢谢!
最佳答案
XPath 表达式不是 HTML 的标准功能(与 XML 不同)。如果您希望获得一个元素 XPath,以后可以将其与 Html Agility Pack 一起使用,你至少有两个选择:
使用 HtmlElement.Parent
遍历元素的 DOM 祖先树并 build 手动设置 XPath。
使用 Html Agility Pack 本身并执行类似这样的操作(未经测试):
HtmlElement element = this.webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition);
var savedId = element.Id;
var uniqueId = Guid.NewGuid().ToString();
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;
关于c# - 从 WebBrowserControl 中单击的 HtmlElement 获取 XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20736331/
在我们的应用程序中,我们有一个在 .NET 浏览器控件内运行的 Java 小程序。 Sun 已知一个问题,以这种方式运行小程序可能会使控件崩溃。 有人遇到过同样的问题并解决了吗? Atm,我们正在 W
我希望能够使用 .NET WebBrowserControl 来记录和重复用户操作,以便为我正在构建的数据提取工具自动从网页中收集和检索文本,但我不确定如何最好地处理这。 我特别想使用 .NET We
如何从 WebBrowserControl 中单击的 HtmlElement 获取 XPath? 这就是我检索点击的 HtmlElement 的方式: System.Windows.Forms.Htm
在我的 WinForms 应用程序中,如果我使用 WebBrowser 控件,它似乎会被强制进入兼容模式。如何禁用此功能,并使其在浏览同一网站时与我的计算机上的独立 IE 的行为相同? 我不想更改注册
在我的 WinForms 应用程序中,如果我使用 WebBrowser 控件,它似乎被强制进入兼容模式。我怎样才能禁用它,并使其在浏览同一站点时与独立 IE 在我的计算机上的行为相同? 我不想更改注册
我是一名优秀的程序员,十分优秀!