【问题标题】:WicketTester: Determine which component has focusWicketTester:确定哪个组件有焦点
【发布时间】:2017-04-25 21:38:14
【问题描述】:

我有一个表单,它在加载时根据状态聚焦不同的组件。 WicketTester 或其他一些 Wicket 测试工具是否可以确定当前具有焦点的组件?

例如,带有用户名和密码的表单。当用户名存在时,密码字段获得焦点,当它不存在时,用户名字段获得焦点。

这是我在临时行为中设置焦点的方式...

response.render(OnDomReadyHeaderItem.forScript("document.getElementById('" + component.getMarkupId() + "').focus();"));

【问题讨论】:

    标签: wicket wicket-7


    【解决方案1】:

    由于您使用 headerItem 设置焦点,您可以测试最后呈现页面的 html。例如:

    String responseTxt = tester.getLastResponse().getDocument();
    assertTrue(responseTxt.contains("document.getElementB‌​yId('componentId').focus();"));
    

    【讨论】:

    • 你写的代码会告诉我控件是否在页面中,但如果它有焦点则不会。这确实给了我一个似乎运作良好的想法: String id = tester.getComponentFromLastRenderedPage("path:username").getMarkupId(); assertTrue(tester.getLastResponse().getDocument().contains("document.getElementById('" + id + "').focus()"));我不知道这是否是您的意思,或者此检查将保持多稳定。感谢您的帮助!
    • 是的,我的例子有点误导,但我的意思是你所做的。我将编辑我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    相关资源
    最近更新 更多