web-dev-qa-db-ja.com

セレンを使用してテキストフィールドのデフォルト値を削除する方法は?

テキストボックスのデフォルト値を削除して新しい値を入力したいのですが、その方法がわかりません。

私は使用することを考えていました CTRL+a その後 Delete しかし、私はこれを行う方法がわかりません。

WebDriverのコマンドdriver.findElement("locator").clear();も使用しました。

23
Wasi

Selenium RCのソリューションを探している場合は、単純に使用できます

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

そして、コードは役に立ちましたか?あなたが書いているコードは次のことをすべきだからです:

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

解決しない場合は、これを試してください:

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

多分あなたはKeys.CONTROL + "a" CharSequenceに、しかし最初のアプローチは魔法をするべきです

40
Pavel Janicek

ページオブジェクトモデルの場合-

 @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");
3
Shek

以下のコードを使用できます。フィールド内の既存の値を選択し、新しい値で上書きします。

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

これは私のために働いています:

driver.findElement(yourElement).clear();

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

1
kljaksa

次の関数は、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);
        });
      });
    }
1
uri wald

.clear()は、テキストをクリアするために使用できます

  (locator).clear();

ロケーターでclearを使用すると、その正確なロケーターのすべての値が削除されます。

0
Sanju Abel

driver.findElement(locator).clear()-このコマンドはすべての場合に機能します

0
dom thomas