在webdriver中使用DELETE或BACK SPACE键清除文本字段

ami*_*yal 14 webdriver selenium-webdriver

我试图使用此操作清除文本字段:

emailField.sendKeys("gmail.com");
emailField.sendKeys(Keys.CONTROL,"a",Keys.DELETE);
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,最后一行只选择文本,不删除它,但如果我将它分开的动作.

emailField.sendKeys(Keys.CONTROL,"a");
emailField.sendKeys(Keys.DELETE);
Run Code Online (Sandbox Code Playgroud)

And*_*gan 14

来自JavaDoc WebElement.clear():

如果此元素是文本输入元素,则将清除该值.对其他元素没有影响.文本输入元素是INPUT和TEXTAREA元素.请注意,此事件触发的事件可能与您预期的不同.特别是,我们不会触发任何键盘或鼠标事件.如果你想确保键盘事件被触发,可以考虑使用类似sendKeys(CharSequence)退格键.为确保您获得更改事件,请考虑sendKeys(CharSequence)使用Tab键进行调用 .

很可能你只需要打电话:

emailField.sendKeys("gmail.com");
emailField.clear();
Run Code Online (Sandbox Code Playgroud)

但是如果由于某种原因需要通过键盘完成清除,请使用退格键.

  • 退格键写为"\ b"(来自http://stackoverflow.com/questions/6448257/selenium-delete-contents-from-a-textbox/22603085#22603085) (6认同)

小智 13

keys.DELETE无法删除输入文本,应该使用keys.BACKSPACE.

emailField.sendKeys(Keys.BACKSPACE)
Run Code Online (Sandbox Code Playgroud)


Tab*_*tha 6

来自 JavaDoc for Keys.chord

chord(java.lang.CharSequence... value) 模拟在“和弦”中一次按下多个键。

你应该可以使用

emailField.sendKeys(Keys.chord(Keys.CONTROL,"a",Keys.DELETE));
Run Code Online (Sandbox Code Playgroud)


Bas*_*hin 5

在 Chrome 驱动程序中测试

WE.send_keys(' \b')
Run Code Online (Sandbox Code Playgroud)

这将添加空间然后删除它(退格)