Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WicketTester:确定哪个组件具有焦点_Wicket_Wicket 7 - Fatal编程技术网

WicketTester:确定哪个组件具有焦点

WicketTester:确定哪个组件具有焦点,wicket,wicket-7,Wicket,Wicket 7,我有一个表单,它在加载时根据状态聚焦不同的组件。WicketTester或其他Wicket测试工具是否有办法确定当前有焦点的组件 例如,带有用户名和密码的表单。当用户名存在时,密码字段获得焦点;当用户名不存在时,用户名字段获得焦点 以下是我如何在临时行为中设置焦点 response.render(OnDomReadyHeaderItem.forScript("document.getElementById('" + component.getMarkupId() + "').focus();")

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

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

以下是我如何在临时行为中设置焦点

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

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

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

您编写的代码将告诉我控件是否在页面中,但不会告诉它是否有焦点。这确实给了我一个似乎运行良好的想法:String id=tester.GetComponentFromLastRenderPage(“路径:用户名”).getMarkupId();assertTrue(tester.getLastResponse().getDocument()包含(“document.getElementById(“+id+”).focus()”));我不知道这是否是你的意思,也不知道这张支票会保持多稳定。谢谢你的帮助!是的,我的例子有点误导,但我的意思是你所做的。我将编辑我的答案