comment supprimer les valeurs par défaut dans le champ de texte en utilisant le sélénium?
je veux supprimer une valeur par défaut d'une zone de texte pour entrer la nouvelle valeur, mais je ne reçois pas comment faire.
je pensais utiliser CTRL+ et Supprimer mais je ne sais pas comment faire.
j'ai même utilisé la commande de WebDriver driver.findElement("locator").clear();
.
8 réponses
si vous cherchez une solution à partir de Selenium RC, vous pouvez utiliser simplement
// assuming 'selenium' is a healthy Selenium instance
selenium.type("someLocator", "");
Et le code utile? Parce que le code que vous écrivez doit faire la chose:
driver.findElement("locator").clear();
Si cela n'aide pas, alors essayez ceci:
WebElement toClear = driver.findElement("locator");
toClear.sendKeys(Keys.CONTROL + "a");
toClear.sendKeys(Keys.DELETE);
peut-être que vous aurez à faire un convertir de l' Keys.CONTROL + "a"
à CharSequence, mais la première approche devrait faire la magie
Pour la page modèle objet -
@FindBy(xpath="//foo")
public WebElement textBox;
maintenant, dans votre fonction
public void clearExistingText(String newText){
textBox.clear();
textBox.sendKeys(newText);
}
pour le général de sélénium architecture -
driver.findElement(By.xpath("//yourxpath")).clear();
driver.findElement(By.xpath("//yourxpath")).sendKeys("newText");
Vous pouvez utiliser le code ci-dessous. Il sélectionne la valeur pré-existante dans le champ et l'écrase avec la nouvelle valeur.
driver.findElement(By.xpath("*enter your xpath here*")).sendKeys(Keys.chord(Keys.CONTROL, "a"),*enter the new value here*);
la fonction suivante supprimera le caractère d'entrée un par un jusqu'à ce que le champ d'entrée soit vide en utilisant 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);
});
});
}
Cela a fonctionné pour moi:
driver.findElement(yourElement).clear();
driver.findElement(yourelement).sendKeys("");
.clear() peut être utilisée pour effacer le texte
(locator).clear();
clair avec le localisateur supprime tous la valeur exacte de localisation.
driver.findElement(locator).clear()
- Cette commande fonctionne dans tous les cas