2015-11-26 44 views
0

我正在爲wicket應用程序編寫硒測試,並且無法獲得一些xpath。如何獲取鏈接的xpath?

例如:

我試圖得到一個鏈接中的XPath。這裏是通過動態便門創建鏈接:

<span> 
 
\t <a id="id2b3" href="#" onclick="var wcall=wicketAjaxGet('./participante_geral?7-1.IBehaviorListener.0-containerDiv-frameSetDiv-gridDiv-linhas-body-rows-1-cells-2-cell-linkPanel',function() { }.bind(this),function() { }.bind(this), function() {return Wicket.$('id2b3') != null;}.bind(this));return !wcall;"> 
 
\t \t <span>Some String</span> 
 
\t </a> 
 
</span>

我試圖得到這樣的鏈接中的XPath:

//a/span[(text() = 'Some String')]/.. 

但是,當我運行硒測試Firefox的WebDriver,我找不到元素/鏈接。

當我在鉻控制檯運行

$x("//a/span[(text() = 'Some String')]/..") 

我能找到成功的元素。

但是,當我在firefox中運行相同的命令時,我得到一個包含鏈接的數組。

我的xpath有什麼問題?

在此先感謝。

回答

0

嘗試創建的xpath時遵循以下語法

//標記名[@屬性= '值']

0

嘗試使用contains功能 -

//a[@id='id2b3']/span[contains(text(), 'Some String')] 
0

檢票支持渲染此用例的每個組件的額外屬性,請參閱IDebugSettings#setOutputComponentPath(boolean)[1]。這會渲染wicketpath屬性。你可以像這樣使用它://a/[@wicketpath='grand:parent:child:id']。 這是用於Wicket 1.5.x/6.x。

對於Wicket 7.x +有DebugSettings#setComponentPathAttributeName(String)。如果它是非空的,則Wicket將使用該字符串作爲該屬性的名稱,例如, data-wicket-path

  1. https://github.com/apache/wicket/blob/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/settings/IDebugSettings.java#L39