由于随机标记ID,我很难使用Selenium测试我们的Wicket应用程序。
对于个别元素,我可以使用abc.setOutputMarkupId(true).setMarkupId("myId")
明确设置标记ID
但是如果使用转发器(如ListView)动态添加元素会怎样?有没有办法指定标记ID序列应该是什么样的?
答案 0 :(得分:1)
那么,你不能用ListView做同样的事情吗?如果您自己进行ListView
实施,然后使用populateItem(final ListItem<?> listItem)
方法,则执行相应的listItem
:
listItem.setOutputMarkupId(true); // write id attribute of element to html
listItem.setMarkupId("id"+i);
其中i
是你在ListView的构造函数中初始化的索引吗?
答案 1 :(得分:1)
检索在标记中表示此组件的ID。这是通过调用显式设置的id属性 org.apache.wicket.Component.setMarkupId(java.lang.String),id 标记中定义的属性,或自动生成的id - in 那个命令。如果未设置显式ID,则此函数将生成id 在页面中唯一的值。这是首选方式 没有碰撞的机会。 http://www.kiwidoc.com/java/l/p/org.apache.wicket/wicket/1.4.0/p/org.apache.wicket/c/Component#top
并且您也无法使用getMarkupId()
获取标记ID