HTML敏捷包QuerySelector返回null

时间:2014-04-12 10:42:19

标签: c# html-agility-pack fizzler

我正在Fizzler使用Html Agility Pack。这是我的选择器,当我在firebug中测试时,它可以正常工作:

$('table.adsh>tbody:nth-child(1)>tr:nth-child(4) table tr:nth-child(1)>td:nth-child(2)')

但是这行代码在C#代码中返回null:

var item = page.QuerySelector("table.adsh>tbody:nth-child(1)>tr:nth-child(4) table tr:nth-child(1)>td:nth-child(2)");

项始终为null。我的选择器有什么问题吗?

提前感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。我打印出page.QuerySelector("table.adsh").InnerHtml;,发现它不包含任何tbody标记。但是当我在Chrome或FireFox中Inspect Element页面时,该表格包含tbody标记。令人不快的是,原始的Html代码不包含tbody,当我Inspect Element表时,浏览器会将tbody添加到检查的代码中。在页面源代码中,我可以看到原始的html。

在此处阅读更多内容:Why does firebug add <tbody> to <table>?

所以我刚从选择器中删除了tbody