簡體   English   中英

如何清除文本框中的文本?

[英]How to clear the text within the text box?

webdriver clear()不清除現有文本

我已經嘗試過clear() ,但是它不起作用,所以嘗試了.sendKeys(Keys.chord(Keys.CONTROL, "a", Keys.BACK_SPACE))但是我的前輩不希望我使用這些鍵。 所以不確定如何清除文本?

元素的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);

謝謝,

嘗試這樣做。

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

所需的元素是Angular元素,因此要調用clear()方法,需要誘導WebDriverwait使該元素可單擊,並且可以使用以下任一解決方案:

  • cssSelector

     WebElement elem = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.form-control.ng-pristine.ng-valid.ng-not-empty.ng-valid-min.ng-touched[type='number'][name^='Quantity_']"))); elem.click(); elem.clear(); 
  • xpath

     WebElement elem = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='form-control ng-pristine ng-valid ng-not-empty ng-valid-min ng-touched' and @type='number'][starts-with(@name, 'Quantity_')]"))); elem.click(); elem.clear(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM