如何始终如一地从Selenium的输入元素中删除默认文本?
我正在尝试使用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">
单击它并手动为其提供焦点后,将删除默认文本和“空”类。
要调用的 JS 将同时调用两者,如果更改导致空文本字段。猜猜这就是为什么没有帮助。setDefaultText()
onBlur()
onChange()
searchField.clear()
我还在调试模式下逐步执行了此方法,在这种情况下,它永远不会起作用。正常运行时,它大部分时间都在工作。不过,我不能说为什么。