web-dev-qa-db-fra.com

Comment supprimer les valeurs par défaut dans un texte avec aide de sélénium?

Je veux supprimer une valeur d'une zone de texte pour entrer la nouvelle valeur, mais je ne comprends pas comment faire cela.

Je pense utiliserCTRL+aet alorsDeletemais je ne sais pas comment faire cela.

J'ai même utilisé la commande driver.findElement("locator").clear(); de WebDriver.

23
Wasi

Si vous cherchez une solution de Selenium RC, vous pouvez l’utiliser simplement.

// assuming 'Selenium' is a healthy Selenium instance
Selenium.type("someLocator", "");
2
Petr Janeček

Et le code était-il utile? Parce que le code que vous écrivez devrait faire la chose:

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

Si cela ne vous aide pas, essayez ceci:

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

vous devrez peut-être convertir le Keys.CONTROL + "a" en CharSequence, mais la première approche devrait faire la magie

39
Pavel Janicek

Pour le modèle d'objet de page -

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

maintenant dans votre fonction

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

pour l'architecture générale au sélénium -

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

Vous pouvez utiliser le code ci-dessous. Il sélectionne la valeur préexistante dans le champ et la remplace par la nouvelle valeur.

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

La fonction suivante supprimera le caractère saisi un à un jusqu'à ce que le champ d'entrée soit vide à l'aide de 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);
        });
      });
    }
1
uri wald

.clear () peut être utilisé pour effacer le texte

  (locator).clear();

utiliser clear avec le localisateur supprime toute la valeur de ce localisateur exact.

0
Sanju Abel

driver.findElement(locator).clear() - Cette commande fonctionnera dans tous les cas

0
dom thomas