获取链接的渲染href属性

时间:2015-02-21 05:42:26

标签: java apache wicket

我正在使用Wicket 1.5-M3。我是新手。以下是HTML代码段:

<a wicket:id="link" href="a">some link</a>

我想获取链接的URL(即href)。如何在渲染后获取页面生成的链接?我想编写一个测试用例,检查生成的链接是否与预定义的链接相同。我怎么能这样做?

任何提示或教程/示例?????

更新

下面是Java测试人员类代码和HTML代码:

@Test
    public void homepageRendersSuccessfully()
    {
        String ab;
        //start and render the test page
        tester.startPage(HomePage.class);

        //assert rendered page class
        tester.assertRenderedPage(HomePage.class);

        ab = tester.getTagByWicketId("lnk").getAttribute("href");
        System.out.println("Clicked Link is: "+ab);
    }

HTML标记

<a wicket:id="link">This is a faulty link</a>

Java代码

public HomePage(final PageParameters parameters) {
        add(new BookmarkablePageLink("link", RandomPage.class, new PageParameters().set("id", 2L).set("sid", 3L)));

    }

测试用例不会产生任何运行时生成链接。测试用例产生以下输出:

  

点击链接是:

2 个答案:

答案 0 :(得分:1)

我想你问WicketTester如何做到这一点?!

如果是,那么您可以使用WicketTester#startPage(Class)来&#34;渲染&#34;这页纸。然后使用org.apache.wicket.util.tester.BaseWicketTester#getTagByWicketId("link")获取TagTester的{​​{1}},最后使用<a>获取org.apache.wicket.util.tester.TagTester#getAttribute("href")属性的值并断言。

答案 1 :(得分:0)

Wicket有很多不同的组合链接方式,试着理解以下内容:

  • 页面链接是动态的(取决于当前页面,链接ID等)
  • AJAX链接肯定不同
  • 默认情况下,页面URL是一个通用URL,它没有漂亮的名称
  • 页面可以挂载到固定的URL,而不是浏览器重定向到该URL,默认情况下不在链接中
  • link是BookmarkablePageLink类的子类,而不是一个好的URL也在HREF链接的属性中

查看有关

的更多详情