25

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

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

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

4

11 に答える 11

49

コードは役に立ちましたか?あなたが書いているコードは、次のことを行う必要があるためです。

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

問題が解決しない場合は、次の方法を試してください。

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

Keys.CONTROL + "a"を CharSequence に変換する必要があるかもしれませんが、最初のアプローチは魔法を行うはずです

于 2012-05-29T13:18:53.223 に答える
2

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

// assuming 'selenium' is a healthy Selenium instance
selenium.type("someLocator", "");
于 2012-05-29T15:25:11.000 に答える
2

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

driver.findElement(By.xpath("*enter your xpath here*")).sendKeys(Keys.chord(Keys.CONTROL, "a"),*enter the new value here*);
于 2016-06-23T13:54:07.113 に答える
1

次の関数は、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);
        });
      });
    }
于 2016-04-27T04:03:25.487 に答える