如果链接具有相同的wicket:id,如何通过WicketTester ClickLink?

mav*_*ick 3 html java junit wicket

在Wicket页面上,我通过以下方式生成带图像的链接:

@Override
protected void populateItem(ListItem<Club> item) 
{
    ...
    Image joinButton = new Image("joinButton", joinResource);
    BookmarkablePageLink<PageClubJoin> joinLink = 
        new BookmarkablePageLink<PageClubJoin>("joinLink", PageClubJoin.class);
    joinLink.setParameter("club", item.getModelObject().getId());
    joinLink.add(joinButton);
    item.add(joinLink);
    ...
Run Code Online (Sandbox Code Playgroud)

渲染的html会产生一系列

<a wicket:id="joinLink" ... />
Run Code Online (Sandbox Code Playgroud)

元素.

现在,如何在第二个上使用WicketTester来实现ClickLink?他们都有同样的检票口:身份证.

Mar*_*rst 8

您提供以冒号分隔的组件的完整路径:

tester.clickLink("listView:0:joinLink");
Run Code Online (Sandbox Code Playgroud)

第一部分是列表视图组件ID,第二部分是您要选择的项目编号,第三部分是您要单击的链接.因此,如果要单击列表中第99项中的链接,您将使用:

tester.clickLink("listView:99:joinLink");
Run Code Online (Sandbox Code Playgroud)

  • 以防万一你想知道如何访问页面上的某个元素[Component.getPageRelativePath()](http://wicket.apache.org/apidocs/1.4/org/apache/wicket/Component.html#getPageRelativePath ())和[BaseTester.debugComponentTrees()](http://wicket.apache.org/apidocs/1.4/org/apache/wicket/util/tester/BaseWicketTester.html#debugComponentTrees%28%29)两个非常有帮助朋友... (3认同)