WicketTester - 在renderOnDomReadyJavascript()之后检查面板内容

时间:2012-03-22 16:37:24

标签: java wicket

使用Apache Wicket 1.4:

我有一个面板,在其renderHead()ajax回调中调用一些设置Javascript:

public SimplePanel(String id) {

    super(id);

    add(JavascriptPackageResource.getHeaderContribution(SimplePanel.class, "SimplePanel.js"));

    AbstractDefaultAjaxBehavior b = new AbstractDefaultAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override public void renderHead(IHeaderResponse response) {
            super.renderHead(response);
            response.renderOnDomReadyJavascript("init()");
        }

        @Override protected void respond(AjaxRequestTarget target) {

        }
    };

    add(b);
}

使用Javascript:

function init() {
    var div = document.getElementById("data");
    div.innerHTML = "XXXuniqueXXX";
}

我正在尝试使用WicketTester进行测试:

Panel panel = tester.startPanel(new TestPanelSource() {
    public Panel getTestPanel(String panelId) {
        return new SimplePanel(panelId);
    }
});

tester.assertNoErrorMessage();
tester.assertContains("XXXuniqueXXX");

renderOnDomReadyJavascript("init()")方法被称为正常,但init()本身似乎永远不会触发。

为了让这个DomReady条件触发,我需要调用什么?

1 个答案:

答案 0 :(得分:1)

WicketTester只是模拟客户端(浏览器)。它不执行任何JavaScript。使用WicketTester所能做的就是声明内容已生成。如果您需要执行JavaScript,则需要使用http://wicketpagetest.sourceforge.net/http://seleniumhq.org/

之类的内容