2012-03-07 79 views
0

我不明白爲什麼我在XPath語法得到一個無效的選擇錯誤的位置:的XPath無效選擇錯誤

給定的選擇/*/tbody[@id='custContainer']/tr/td/a(starts-with(@href, 'Customers/')無效或不導致WebElement。發生以下錯誤: [InvalidSelectorError]由於以下錯誤,無法找到xpath表達式爲/*/tbody[@id='dgContainer']/tr/td/a(starts-with(@href, 'Customers/')的元素: [例外...「表達式不是合法表達式。」代碼: 「51」 nsresult: 「0x805b0033(NS_ERROR_DOM_INVALID_EXPRESSION_ERR)」 的位置: 「資源://fxdriver/modules/atoms.js線路:2398」]

這是呼叫我使用By.XPath硒做。我也嘗試//而不是/ * /開始那個路徑,但不知道要使用哪個......不知道這是問題還是它是我的字符串的其他部分。

我也試過包含而不是開始與。

FYI我是新來硒和XPath ....

+1

簡化。每當我與XPath鬥爭時,我都會從最廣泛的查詢開始,以確保獲得結果,然後再進行優化。以/ */tbody開頭並逐漸添加。 – n8wrl 2012-03-07 18:33:14

+2

可能你需要'a [starts-with(@href,'Customers /')]'(請注意方括號) – 2012-03-07 18:35:53

+0

感謝您的建議n8wl,我也開始看到這一點。我真的不知道XPath究竟是如何工作的......這是有道理的,但我必須習慣它如何走向它,它期望什麼,等等。 – PositiveGuy 2012-03-07 19:02:28

回答

0

絕對是你的XPath表達式不正確。在方括號中定義謂詞,即:

/*/tbody[@id='custContainer']/tr/td/a[starts-with(@href, 'Customers/')] 
+0

這是最後的xpath字符串,它爲我工作string.Format(「// tbody [@ id ='custContainer']/tr/td/a [(contains(@href,'{0}'))]」,「 /顧客/」)); – PositiveGuy 2012-03-07 19:12:46