Подтвердить что ты не робот

Как удалить значения по умолчанию в текстовом поле, используя селен?

Я хочу удалить значение по умолчанию для текстового поля, чтобы ввести новое значение, но я не понимаю, как это сделать.

Я думал использовать CTRL + a, а затем Delete, но я не уверен, как это сделать.

Я даже использовал команду WebDriver driver.findElement("locator").clear();.

4b9b3361

Ответ 1

Если вы ищете решение от Selenium RC, вы можете просто использовать

// assuming 'selenium' is a healthy Selenium instance
selenium.type("someLocator", "");

Ответ 2

И был ли код полезен? Поскольку код, который вы пишете, должен сделать следующее:

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

Если это не поможет, попробуйте следующее:

WebElement toClear = driver.findElement("locator");
toClear.sendKeys(Keys.CONTROL + "a");
toClear.sendKeys(Keys.DELETE);

возможно, вам придется сделать какой-то конвертер Keys.CONTROL + "a" в CharSequence, но первый подход должен сделать волшебство

Ответ 3

Для модели объекта страницы -

 @FindBy(xpath="//foo")
   public WebElement textBox;

теперь в вашей функции

 public void clearExistingText(String newText){
    textBox.clear();
    textBox.sendKeys(newText);
  }

для общей архитектуры селена -

driver.findElement(By.xpath("//yourxpath")).clear();
driver.findElement(By.xpath("//yourxpath")).sendKeys("newText");

Ответ 4

Вы можете использовать приведенный ниже код. Он выбирает предварительно существующее значение в поле и перезаписывает его новым значением.

driver.findElement(By.xpath("*enter your xpath here*")).sendKeys(Keys.chord(Keys.CONTROL, "a"),*enter the new value here*);

Ответ 5

Следующая функция будет удалять входной символ один за другим, пока поле ввода не будет пустым, используя PromiseWhile

driver.clearKeys = function(element, value){
  return element.getAttribute('value').then(function(val) {
    if (val.length > 0) {
      return new Promise(function(resolve, reject) {
        var len;
        len = val.length;
        return promiseWhile(function() { 
          return 0 < len;
        }, function() {
          return new Promise(function(resolve, reject) {
            len--;
            return element.sendKeys(webdriver.Key.BACK_SPACE).then(function()              {
              return resolve(true);
            });
          });
        }).then(function() {
          return resolve(true);
        });
      });
    }

Ответ 6

Это сработало для меня:

driver.findElement(yourElement).clear();

driver.findElement(yourelement).sendKeys("");

Ответ 7

.clear() может использоваться для очистки текста

  (locator).clear();

используя clear с локатором, удаляет все значения в этом точном локаторе.