使用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条件触发,我需要调用什么?
答案 0 :(得分:1)
WicketTester只是模拟客户端(浏览器)。它不执行任何JavaScript。使用WicketTester所能做的就是声明内容已生成。如果您需要执行JavaScript,则需要使用http://wicketpagetest.sourceforge.net/或http://seleniumhq.org/
之类的内容