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

时间:2016-03-06 19:00:05

标签: selenium-webdriver webdriver

我正在尝试使用此操作清除文本字段:

emailField.sendKeys("gmail.com");
emailField.sendKeys(Keys.CONTROL,"a",Keys.DELETE);

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

emailField.sendKeys(Keys.CONTROL,"a");
emailField.sendKeys(Keys.DELETE);

7 个答案:

答案 0 :(得分:12)

来自WebElement.clear()的JavaDoc:

  

如果此元素是文本输入元素,则将清除该值。   对其他元素没有影响。文本输入元素是INPUT和   TEXTAREA元素。请注意,此事件触发的事件可能不是   正如你所期望的那样。特别是,我们不会触发任何键盘或鼠标   事件。如果要确保触发键盘事件,请考虑   使用sendKeys(CharSequence)退格键之类的内容。至   确保您获得更改活动,请考虑跟随   使用标签键sendKeys(CharSequence)

您很可能只需要致电:

emailField.sendKeys("gmail.com");
emailField.clear();

但如果您因某些原因需要通过键盘完成清算,请使用退格

答案 1 :(得分:11)

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

emailField.sendKeys(Keys.BACKSPACE)

答案 2 :(得分:2)

我在javascript中使用,并且运行良好:

await textBox.sendKeys(value);
await textBox.sendKeys(Key.BACK_SPACE);

答案 3 :(得分:1)

来自Keys.chord

的JavaDoc
  

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

你应该可以使用

emailField.sendKeys(Keys.chord(Keys.CONTROL,"a",Keys.DELETE));

答案 4 :(得分:1)

在chrome驱动程序中测试

WE.send_keys(' \b')

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

答案 5 :(得分:0)

FitHeaderCard.Value

对我没用。

我用“键”代替“键”

emailField.sendKeys(Keys.BACKSPACE)

答案 6 :(得分:-1)

1. in WebdriverIO, i tried to edit the text by clear text (which contains special charactes like @, +, _) in text field by below following step. Eventhough it was not successful.

example: text=> abc+1234@gmail.com

step1:browser.clearElement(selector);

step2:browser.execute(function () {
            document.querySelector(>>>Cssselector<<<).value="";
        });

step3: browser.doubleClick(selector);
       browser.keys("Delete");

step4: browser.click(selector);
       browser.keys(['Meta',a]);  
       browser.keys('Meta');   
       browser.keys('Delete');

Note: below step is resolved this issue.

var count= browser.getAttribute(selector, value).length;
for (var i=0;i<count;i++)
{
if (browser.getAttribute(selector, value)=='')
break;
}
else
{
browser.doubleClick(selector);
browser.keys("Delete");
}
browser.pause(200);

//它将轻松清除您的文本字段。

注意: 您可以立即添加新文本。