我正在尝试使用Selenium WebDriver将文本输入具有默认文本“ Enter User 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()
我也在调试模式下逐步完成了该方法,在那种情况下,它永远无法工作。正常运行时,大部分时间都可以运行。我不能说为什么。
好的,当clear()
方法清除input
并将其留空时,脚本显然会启动。它提出的解决方案如下。
Backspace
10次:String b = Keys.BACK_SPACE.toString();
searchField.sendKeys(b+b+b+b+b+b+b+b+b+b + username);
(可以StringUtils.repeat()
从Apache
Commons Lang或Google Guava Strings.repeat()
派上用场)
在一个更好的使用Ctrl
+ A
,Delete
:
String del = Keys.chord(Keys.CONTROL, "a") + Keys.DELETE;
searchField.sendKeys(del + username);
input
通过JavaScript 删除内容:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript(“arguments[0].value = ‘’;”, searchField);
searchField.sendKeys(username);
input
完全通过JavaScript 设置via 的值:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript(“arguments[0].value = ‘” + username + “’;”, searchField);
问题内容: 想象一下,我有以下类似的东西修改 如何在不影响任何子元素的情况下从DOM中仅删除(仅文本)“第一”,“第二”和“第三”。 问题答案: 如果要删除所有子文本节点,则可以使用,然后将匹配集减少为仅文本节点: 注意 :这将保留子元素上所有现有的事件处理程序,使用答案不会做(因为从DOM中删除了这些元素并重新添加了这些元素)。 注2 :一些链接的问题中的答案显示的代码与我的答案中的代码相似,但
问题内容: 我正在使用类型为日期的html输入元素, 当我使用上述元素时,它将在输入元素内创建默认日期格式,即mm / dd / yyyy文本。如何删除此默认文本? 我尝试在页面上添加以下样式,但它也隐藏了所选的日期值, 问题答案:
问题内容: 我一直在尝试最后一小时删除元素,但没有成功。而且该元素只能通过类名来访问。我试过了: 我收到未定义parentNode的错误。 那么,使用Selenium删除元素的最佳方法是什么? 问题答案: getElementByClassName不是的方法。您将要使用 但前提是您确定它是该课程中唯一的课程。
问题内容: 我陷入了XML和Python的困境。任务很简单,但到目前为止我还无法解决,花了那么长时间。我是来这里咨询如何用几行解决它的。 感谢您对遍历树的任何帮助。我总是以太多或太少的元素结束。元素可以无限制地嵌套。给出的例子只是一个例子。我会接受任何解决方案,而不是对dom,minidom,sax等等不挑剔。 我有一个与此类似的XML文件: 我需要的是-解析XML并编写一个新文件。新文件应包含给
问题内容: 我有一个数组例如: 谁能告诉我如何从数组中删除一个元素。例如,我要删除项目“ b”,以使数组如下所示: 我找不到解决办法。到目前为止,我在这里发现的内容不适用于我:( 问题答案: 您不能从数组中删除元素。Java数组的大小是在分配数组时确定的,不能更改。您能做的最好的事情是: 在相关位置分配给数组;例如 这给您带来了处理值所在数组中的“孔”的问题。(在某些情况下,这不是问题……但是在大
问题内容: 是否可以从加载中删除元素而不创建新元素?例如这样的事情: 问题答案: 通过告诉父节点删除子节点来删除该节点: 请参阅文档 和 文档 。