我正在尝试使用 Selenium WebDriver 将文本输入到具有默认文本“输入用户 ID”的 GWT 输入元素。以下是我尝试使其工作的几种方法:
searchField.click();
if(!searchField.getAttribute("value").isEmpty()) {
// clear field, if not already empty
searchField.clear();
}
if(!searchField.getAttribute("value").isEmpty()) {
// if it still didn't clear, click away and click back
externalLinksHeader.click();
searchField.click();
}
searchField.sendKeys(username);
奇怪的是,上述方法仅在某些时候有效。有时,它最终会搜索“输入用户 IDus”,基本上是在默认文本之后开始输入“用户名”——甚至没有完成。
还有其他更好、更可靠的方法来清除 GWT 元素中的默认文本吗?
编辑添加:输入元素的 HTML。不幸的是,由于 JS/GWT 的火爆,没什么可看的。这是未选中时的字段:
<input type="text" class="gwt-TextBox empty" maxlength="40">
在我单击它并手动赋予它焦点后,默认文本和“空”类将被删除。
如果更改导致空文本字段,则setDefaultText()
调用JS 。猜猜这就是为什么没有帮助。onBlur()
onChange()
searchField.clear()
我也在调试模式下逐步完成了这个方法,在这种情况下,它永远不会起作用。正常运行时,它大部分时间都在工作。不过,我不能说为什么。