我想在某些应用程序中声明一些标签label1
。我写了以下junit testcase:
wicketTester.assertLabel("label1", "Hello!");
添加标签的页面如下所示:
FooPage.java
public class FooPage extends WebPage {
public FooPage() {
add(new Label("label1", "Hello!"));
}
}
,相应的html页面如下所示: FooPage.html
<body>
..
...
<div wicket:id="label1"></div>
..
<body>
当有人点击链接时,我会显示标签label1
<a wicket:id="fooId" href="FooPage">Foo</a>
在以下页面中:
<html xmlns:wicket="http://wicket.apache.org/">
<body>
<wicket:panel>
<div class="xxx">
<a wicket:id="fooId"
href="FooPage">Foo</a>
</div>
</wicket:panel>
</body>
</html>
当我运行junit Test时,出现以下错误:
path: 'label1' does not exist for page: BarPage
我的问题是:如何为标签label1
找到正确的路径?
答案 0 :(得分:1)
您是否在测试中点击了“fooId”链接(使用wicketTester.clickLink)?
答案 1 :(得分:0)
您可以找到这样的组件路径
修改 WicketApplication 类
在Wicket 7中
getDebugSettings().setComponentPathAttributeName("component_path");
在Wicket 6岁或以上
getDebugSettings().setOutputComponentPath(true);
用法示例:
@Override
public RuntimeConfigurationType getConfigurationType() {
if (Boolean.valueOf(getProperty("development.mode"))) {
//show component path in html tag
getDebugSettings().setComponentPathAttributeName("component_path");
return RuntimeConfigurationType.DEVELOPMENT;
}
return RuntimeConfigurationType.DEPLOYMENT;
}
如果您检查组件,请从Web浏览器中找到与此类似的内容:
<input type="text" value="" component_path="pageContent_form_username" name="username" id="username3" >
请不要忘记使用(:)冒号更改所有下划线:
pageContent_form_username - &gt; pageContent:形式:用户名