我正在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。我的选择器有什么问题吗?
提前感谢任何帮助。
答案 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
。