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/