Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何清除文本框中的文本?_Java_Selenium Webdriver_Xpath_Css Selectors_Webdriverwait - Fatal编程技术网

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

Java 如何清除文本框中的文本?,java,selenium-webdriver,xpath,css-selectors,webdriverwait,Java,Selenium Webdriver,Xpath,Css Selectors,Webdriverwait,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

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">

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

试试这样做

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

试着这样做

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

这应该像“黑暗骑士”说的那样起作用

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

谢谢,

正如@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);
谢谢,

所需的元素是一个元素,因此要调用
clear()
方法,您需要引导WebDriverwait使该元素可单击,并且您可以使用以下任一解决方案:

  • css选择器

    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();
    
所需的元素是一个元素,因此要调用
clear()
方法,您需要引导WebDriverwait使该元素可单击,并且可以使用以下任一解决方案:

  • css选择器

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

已经尝试过,但不起作用,因此移动到按键。我的前辈对钥匙不满意。为什么要将答案设为否定,这是清除的基本方法。如果这对你不起作用,并不意味着这不好。@KishoreJawalkar撰稿人在这里发帖不是为了让你的上司高兴。这个平台只会帮助你解决问题。@DarkKnight我知道这个平台,不想得到我知道的答案。所以,我显然是在寻找一些答案,而不是张贴出来。@KishoreJawalkar很棒。请确保继续,请确保在帖子中不包含“我的前辈……”之类的术语。这不会给您的问题陈述增加任何价值。您已经尝试过了,但它不起作用,因此移动到关键点。我的前辈对钥匙不满意。为什么要将答案设为否定,这是清除的基本方法。如果这对你不起作用,并不意味着这不好。@KishoreJawalkar撰稿人在这里发帖不是为了让你的上司高兴。这个平台只会帮助你解决问题。@DarkKnight我知道这个平台,不想得到我知道的答案。所以,我显然是在寻找一些答案,而不是张贴出来。@KishoreJawalkar很棒。请确保继续,请确保在帖子中不包含“我的前辈……”之类的术语。这不会给你的问题陈述增加任何价值