据我所知,有两种方法可以在GWT中设置Web元素的ID。我需要执行Selenium自动化测试,并希望深入了解每种技术的相对优势。
选项1:普遍接受的方法
uiObject.ensureDebugId("idForMyElement");
此解决方案已有详细记录,并得到谷歌的正式支持。但是它有一些缺点:
我的团队必须为每个包的gwt.xml文件添加行,如下所示:
<inherits name='com.google.gwt.user.Debug' />
此外,Debug类预先设置&#34; gwt-debug&#34;默认情况下为ID。我意识到我可以改变这种行为,但我不想在我可以提供帮助的地方增加复杂性。
选项2:使用通用的setAttribute调用
uiObject.getElement().setAttribute("id", "idForMyElement);
这对我来说似乎更清洁 - 我可能会忽略任何不足之处吗?
相关资源: How can I set id for GWT widgets in UiBinder? https://code.google.com/p/google-web-toolkit/issues/detail?id=4176
答案 0 :(得分:3)
第一个选项更好,因为您可以从生产代码中编译出调试ID,使其更小。
即使您不再需要它们,第二个选项ID也会存在。