2016-11-21 36 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}"); 
}