2012-10-31 72 views
2

我想在Selenium IDE中使用Xpath的問題。 首先奇怪的是,當我右鍵單擊元素時,Selenium選項不顯示。Selenium IDE新問題:XPath

其次,如果我檢查元素與螢火蟲的副本中的XPath,結果是這樣的:

//html/body/div/div[4]/new:form/div[3]/table/tbody/tr/td/table/tbody/tr[17]/td[3]/a 

如果我在硒插入這條道路的點擊「查找」我得到按摩的定位未找到。 當我運行它,它說:[錯誤]無效的Xpath [2] :(則路徑)

沒有問題找到

//html/body/div/div[4]/ 

我認爲這個問題是「新:表」部分但我沒有明白爲什麼?!

我無法訪問代碼。但是,當我刪除螢火蟲中的「新」它有效。 有沒有解決這個問題的方法? 謝謝

回答

0

在Firebug提供的XPath元素form是在某些命名空間中定義的,Firebug使用new作爲前綴。我不知道Selenium是否支持帶命名空間的XPath。無論如何,你可以稍微修改定XPath,使用*代替new:form,即:

//html/body/div/div[4]/*[local-name(.) = 'form']/div[3]/table/tbody/tr/td/table/tbody/tr[17]/td[3]/a 
+0

@downvoter,小心點評? –

+0

謝謝。現在我知道新的形式來自哪裏。我已經有了使用*的想法,但我不知道如何。我會明天在工作中嘗試。:) – SeleniumNewbe

+0

謝謝你的工作=) 只與*。非常簡單但有效。我認爲':'是問題所在。 – SeleniumNewbe

0

您可以安裝Firepath這是一個擴展Firebug的的。這會給你更清晰的XPath。

+0

謝謝。很好,現在關於Firepath。我明天將在工作中嘗試。 :) – SeleniumNewbe

+0

我安裝了Firepath,但它無法找到'new:form'Xpath。也許我處理錯了。 – SeleniumNewbe

1

在寫這個問題的時候,Selenium沒有爲XPath表達式中的名稱空間提供適當的支持。但是,that has since been changed。自一段時間以來(around March 2015),您可以使用它們在文檔中出現的命名空間前綴來選擇元素。

在此之前,這有點難度,您需要像accepted answer這樣的解決方案。現在,您可以使用原始問題中給出的表達式:

//html/body/div/div[4]/new:form....