clear text field using DELETE or BACK SPACE key in webdriver

Viewed 112010

I am trying to clear a text field using this action:

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

In above code, the last line only selects the text, does not delete it, but if I separate the actions it works.

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

keys.DELETE can not work to delete the input text,you should use keys.BACKSPACE.

emailField.sendKeys(Keys.BACKSPACE)

Tested in chrome driver

WE.send_keys(' \b')

This will add space then delete it (backspace)

I use in javascript and it's working fine:

await textBox.sendKeys(value);
await textBox.sendKeys(Key.BACK_SPACE);
emailField.sendKeys(Keys.BACKSPACE)

doesn't worked for me .

I used 'Key' instead of 'Keys'

emailField.sendKeys(protractor.Key.BACKSPACE)

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

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);

// it will clear your text field easily.

Note: You can add the new text now.

Related