2016-11-21 84 views
1
<div id="id_language" class="sBody text select_m" rel="1">Français</div> 

从此HTML代码。我想HTMLAgility或其他东西来找到它。如何使用HTMLAgility选择rel级别

而且接下来是我的代码

while (htmldoc.DocumentNode.SelectNodes("Français") == null) 
       { 
        webBrowser1.Document.GetElementById("id_language").Focus(); 

        SendKeys.Send("{DOWN}"); 
       } 

在我的代码,我想找到的keydown,直到它找到了“法语”(或相对= 1),然后停止。任何人都可以帮助我?谢谢。

回答

0

所以First Francais是你div节点的值。如果您想要搜索值为Francais的div Html节点。你应该有。

var divNode = htmldoc.DocumentNode.Descendants(). 
         Where(x => x.Name == "div" && x.InnerText == "Français"). 
         FirstOrDefault(); 

如果你想找到属性为rel = 1格,你应该有这样的事情:

var divNode = htmldoc.DocumentNode.Descendants(). 
        Where(x => x.Name == "div" && x.Attributes["rel"].Value == "1"). 
        FirstOrDefault(); 
+0

它总是显示nullException。我认为这是因为它从第一次没有。但我必须选择它,直到它出现。你有什么主意吗? –

+0

@KanasawaRamirez你可以给**生成异常的html小**字符串。 – mybirthname

+0

https://postimg.org/image/o5f4n1a77/ –

0

这可能会为你

var french = doc.DocumentNode.SelectSingleNode("//div[@rel]") 
var relVal = french.Attributes["rel"].Value; 

所以你做的伎俩可以做

while(htmldoc.DocumentNode.SelectSingleNode("//div[@rel]").Attributes["rel"].Value == "1") 
{ 
    SendKeys.Send("{DOWN}"); 
}