java - 如何清除文本框中的文字?

标签 java selenium-webdriver xpath css-selectors webdriverwait

webdriver clear() 未清除现有文本

我尝试过 clear() 但它不起作用,所以尝试了 .sendKeys(Keys.chord(Keys.CONTROL, "a", Keys.BACK_SPACE))但我的学长不希望我使用 key 。不确定如何清除文本?

元素的 HTML:

<input name="Quantity_110787" type="number" min="0" ng-model="invoiceLine.quantity" class="form-control ng-pristine ng-valid ng-not-empty ng-valid-min ng-touched" ng-keypress="$ctrl.preventKey($event)" aria-invalid="false">

代码试验:

public void sendText(String text) {
        for (String control : controls) { 
        if(getWebDriver().findElement(By.cssSelector(control)).getAttribute("type").contains("number")) {
                getWebDriver().findElement(By.cssSelector(control)).sendKeys(Keys.chord(Keys.CONTROL, "a", Keys.BACK_SPACE), text);
                break;
            }
        }

我希望清除文本字段,以便我可以输入新文本。请帮忙。

最佳答案

这应该像@Dark Knight 所说的那样工作,

driver.findElement("locator").clear();

尝试先点击

 driver.findElement("locator").click();
 driver.findElement("locator").clear();

否则尝试使用sendKeys

driver.findElement("locator").click();
driver.findElement("locator").sendKeys("");

或者尝试 JS:

WebElement wb = driver.findElement("locator");
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].value='';", wb);

谢谢

关于java - 如何清除文本框中的文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53912874/

相关文章:

xml - 如何使用 XPath 在祖先或自身节点列表中查找最近的祖先

xslt - 如何通过第二个(未命名的)模板重新处理元素?

java - MD5 不一致地为相同的密码生成相同的加密数据

java - 在 Java 中从 ZipOutputStream 返回 Zip 文件

selenium-webdriver - 使用 Protractor 从表中收集数据的最有效方法是什么?

java - 如何在 Mac 机器的 Safari 浏览器上运行 selenium 脚本

python - Selenium 蟒 : find_element_by_css_selector() using :contains()

java - 如何获取当前前台Activity的包名?

Java 类将大于视为大于或等于

javascript - 使用 selenium 填写位于新页面的表单