2012-03-07 82 views
0

我正在嘗試找到一個工具來捕獲網頁中的項目。首先,我已經使用的xpath取景火狐插件但有時產生與模式(XPath 2.0中)的xpath所以它不是合適的帶有完整xpath的HTML敏捷包

下面是谷歌搜索按鈕

html/body/div[2]/div[1]/div[1]/div[2]/div[2]/div/form/div[1]/button[1] 

與firepath(火狐)產生的絕對的xpath當我嘗試

doc.DocumentNode.SelectSingleNode("html/body/div[2]/div[1]/div[1]/div[2]/div[2]/div/form/div[1]/button[1]").InnerText; 

它給出空引用異常。

所以我不能使用firepath。

我需要一個與HTML Agility Pack配合使用的工具。或者需要找出爲什麼上述不起作用。

+1

沒有看到HTML文件的結構,很難給出答案。嘗試使用'/'開始XPath聲明以對其進行根目錄。此外,'button'元素_really_是否包含任何'InnerText'? – Oded 2012-03-07 09:29:26

回答

0

使用FirePath時,當我禁用生成絕對XPATH時,我得到了很好的結果。 在你的情況下產生的XPath是

.//*[@id='gbqfb'] 

但我可以寫一個XPath查詢類似下面:爲什麼你的XPath查詢不工作

//button[@name='btnG'] 

不知道,但下面好像當我刪除工作form標籤。

doc.DocumentNode.SelectSingleNode("html/body/div[2]/div[1]/div[1]/div[2]/div[2]/div/div[1]/button[1]").InnerText;