2015-11-26 47 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