テキストボックスのデフォルト値を削除して新しい値を入力したいのですが、その方法がわかりません。
私は使用することを考えていました CTRL+a その後 Delete しかし、私はこれを行う方法がわかりません。
WebDriverのコマンドdriver.findElement("locator").clear();
も使用しました。
Selenium RCのソリューションを探している場合は、単純に使用できます
// assuming 'Selenium' is a healthy Selenium instance
Selenium.type("someLocator", "");
そして、コードは役に立ちましたか?あなたが書いているコードは次のことをすべきだからです:
driver.findElement("locator").clear();
解決しない場合は、これを試してください:
WebElement toClear = driver.findElement("locator");
toClear.sendKeys(Keys.CONTROL + "a");
toClear.sendKeys(Keys.DELETE);
多分あなたはKeys.CONTROL + "a"
CharSequenceに、しかし最初のアプローチは魔法をするべきです
ページオブジェクトモデルの場合-
@FindBy(xpath="//foo")
public WebElement textBox;
今あなたの機能で
public void clearExistingText(String newText){
textBox.clear();
textBox.sendKeys(newText);
}
一般的なSeleniumアーキテクチャの場合-
driver.findElement(By.xpath("//yourxpath")).clear();
driver.findElement(By.xpath("//yourxpath")).sendKeys("newText");
以下のコードを使用できます。フィールド内の既存の値を選択し、新しい値で上書きします。
driver.findElement(By.xpath("*enter your xpath here*")).sendKeys(Keys.chord(Keys.CONTROL, "a"),*enter the new value here*);
これは私のために働いています:
driver.findElement(yourElement).clear();
driver.findElement(yourelement).sendKeys("");
次の関数は、PromiseWhileを使用して入力フィールドが空になるまで、入力文字を1つずつ削除します
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);
});
});
}
.clear()は、テキストをクリアするために使用できます
(locator).clear();
ロケーターでclearを使用すると、その正確なロケーターのすべての値が削除されます。
driver.findElement(locator).clear()
-このコマンドはすべての場合に機能します