我有一个带有WebBrowser对象的C#表单。 该对象包含HTML文档。 并且该文档中有一个没有标记的链接(没有ID和没有名称) 我怎样才能访问这个元素?
我试着用这个:
webBrowser1.Document.GetElementsByTagName("a")[n]
但它不是很有用,因为如果页面上会有一些新链接,我需要重建所有程序。
我也不能通过文档循环,或者获取Document.ToString()的子字符串,因为那时我无法点击链接。
如果你能给我一些建议会很棒。
答案 0 :(得分:2)
在这种情况下,最好的想法总是找到一个“锚点”,意思是 - 文档中一个永不改变的地方。
让我们说
<a href="http://site.com">dada</a>
没有ID或名称,因此您最接近的是检查您要查找的元素的父元素是否具有ID。
<div id="parentDiv">
Some text
Some other stuff
<a href="http://site.com">The link you're looking for</a>
</div>
这样你就可以得到你知道不会改变的parentDiv,然后是那个父级内的A标签(除非该网站完全改变了结构,否则它应该是永久性的,这是解析外部HTML页面的问题之一) )
晒。
答案 1 :(得分:1)
您可以使用Html Agility Pack。并按xpath选择链接
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument doc = htmlWeb.Load(/* url */);
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
{
// do stuff
}
答案 2 :(得分:0)
您应该了解如何识别链接的一些信息。它可能是id或名称或文本。如果文本始终相同,请检查该链接的内部文本。