简体   繁体   中英

Selenium Java clear method will not clear the input field?

I ran into a little issue today while validating some input fields in our application. Looks like we can't call the selenium java method clear() to clear the input and I know I can iterate over the string and use sendKeys(Keys.Backspace) but clear method should do the work?

Anyone else ran into the same issue and how did you work around this problem.?

Our app is built upon Ant libraries

Selenium

String hotmarketNameEdit = "ant-input";

    WebElement edit = driver.findElement(By.className(hotmarketNameEdit));
    edit.click();
    edit.clear();

HTML

<input type="text" id="label" class="ant-input ant-input-sm" value="AUTOMATION TEST - Thu Oct 21 09:54:15 MDT 2021" xpath="1">

Thanks for any inputs

I've personally come across this issue quite a few times, that Selenium .clear() method does not work properly.

Selenium community is aware of this issue, please see the bug reported here - ClearText does not work

You can go through the above-mentioned link.

Workaround :

Majority of time, I try to simulate Ctrl + A to select the text and just press delete after that.

If You are using Java as a binding language, You can do the following

webElement.sendKeys(Keys.CONTROL + "a")
webElement.sendKeys(Keys.DELETE)

have you tried JavaScriptExecutor?

JavascriptExecutor jse = (JavascriptExecutor) indexWebDriver;
jse.executeScript("arguments[0].value=''",edit);

check this one also

How can I consistently remove the default text from an input element with Selenium?

你能试试这个解决办法吗,在一个命令中同时传递选择和删除关键字

driver.findElement(By.name("username")).sendKeys(Keys.chord(Keys.CONTROL,"a", Keys.DELETE));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM