设置GWT CheckBox元素id

时间:2016-07-21 15:34:28

标签: html gwt checkbox

我正在尝试使用流动选项将元素ID设置为GWT复选框,它们都没有将id分配给ckeckbox但是包装了span元素。

DOM.setElementAttribute(testCheckbox.getElement(), "id", "testCheckboxId");

testCheckbox.getElement().setId("testCheckboxId");

编译的HTML看起来像:

<span id="testCheckboxId" class="gwt-CheckBox">
   <input id="gwt-uid-328" type="checkbox" value="1" tabindex="0" checked="">
   <label for="gwt-uid-328"></label>
</span>

2 个答案:

答案 0 :(得分:2)

首先,你不应该更改CheckBox的输入元素的id。正如您所见,label元素在id属性中使用了此for

您可以获取并使用GWT设置的id

((Element)(testCheckbox.getElement().getFirstChild())).getId()
-- or --
testCheckbox.getElement().getElementsByTagName("input").getItem(0).getId()

你也可以这样设置id,但我不建议这样做:

((Element)(testCheckbox.getElement().getFirstChild())).setId("xxxxxx");
-- or --
testCheckbox.getElement().getElementsByTagName("input").getItem(0).setId("xxxxxx");

如果您需要更改id,还应更改for元素中的label属性:

((LabelElement)(testCheckbox.getElement().getLastChild())).setHtmlFor("xxxxxx");
-- or --
((LabelElement)(testCheckbox.getElement().getElementsByTagName("label").getItem(0))).setHtmlFor("xxxxxx");

答案 1 :(得分:0)

您正在设置元素ID。

即使它将id设置为span标记,您也可以将它与selenium webdriver一起使用。您必须使用以下方法来定位它。

webdriver.findElement(By.xpath, <xpath>) 

工作正常。

同样,对于文本框,您可以使用xpath找到元素,并使用“sendKeys()”方法传递值。