【问题标题】:Setting HTML tags with GWT使用 GWT 设置 HTML 标签
【发布时间】:2011-12-30 02:43:15
【问题描述】:

我正在运行依赖“id”标签来识别控件的测试自动化软件。

我正在使用 GWT 插件在 eclipse 上的 java 中进行开发,并尝试使用以下两种方法来设置按钮“添加”的 id 标签。

add.setId("addId");

DOM.setElementAttribute(add.getElement(), "id", "addId");

这些都没有正确修改 id 属性。您以前是否遇到过这个问题,或者您知道解决方法吗?

感谢您的帮助!

杰瑞

【问题讨论】:

  • 不鼓励在 GWT 中手动添加标签。您所做的在 Syntex 中是正确的,但可能不在正确的代码区域中。我建议设置一个断点,看看它是否被执行。
  • 你是用 uibinder 声明你的按钮吗?
  • 我不认为使用 uibinder,在调试下运行它并且正在运行该行,但在变量视图下查看我看到该按钮的 id 变量在运行该行后仍然为空。我不知道为什么。
  • 实际上,我让它在 eclipse 中运行,以便更改元素 id 字段,但是在通过 GWT 时,该标签丢失了......

标签: java html gwt tags


【解决方案1】:

如果我没记错的话,一些浏览器(或者可能只是 Internet Explorer)在将 DOM 元素附加到 DOM 后不会让您设置它的 ID。即使您直接执行此手动编码的 javascript,也会存在此限制。浏览器在设置 id 属性时不会显示任何错误,但也不会更新属性。

因此您需要在将元素附加到 DOM 之前设置 ID。


编辑

从下面的讨论看来,您似乎假设在 Button 小部件的 DOM 元素上设置 ID 将在 <input type="button"> DOM 元素上设置 ID。但是这个假设并没有被证明是正确的,因为 Button 小部件将<input type="button"> DOM 元素包装在其他 DOM 元素(如 table 或 div)中。


编辑

如果您想自定义input type="button"> 元素,您可能想尝试Button.wrap(element) 方法。首先创建 (DOM.createButton()) 或者定位一个 DOM 元素,设置它的 id,然后使用 Button.wrap(element) 包装它

【讨论】:

  • 太棒了!我怎么能这样做?我在初始化元素后立即设置了 id。
  • 按钮添加 = new Button("添加测试"); add.getElement().setId("添加 id");
  • 那么在调用后如何检查 id 设置是否正确?
  • @Shahzeb,我不确定 Jerry 的用例,但通常人们在必须与外部 javascript 代码交互时会这样做。
  • 我一直在使用 firebug 和一个与测试自动化工具相关的工具,此时根本没有分配它,因为给定元素没有 id 标签
【解决方案2】:

很久以前,我有一个 GWT 应用程序的 Selenium 测试套件,我使用了 ensureDebugId 方法来设置 ID。

编辑 - 它似乎仍然是 API 的一部分

【讨论】:

    猜你喜欢
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多