Clear a textarea or a text input element's value. Starting with v1.1 clearValue() will wait for the element to be present (until the specified timeout).

If the element is not found, an error is thrown which will cause the test to fail. Starting with v1.2 you can suppress element not found errors by specifying the suppressNotFoundErrors flag.

clearValue() will automatically wait for the element to be present (until the specified timeout). If the element is not found, an error is thrown which will cause the test to fail. Starting with v1.2 you can suppress element not found errors by specifying the suppressNotFoundErrors option.

Usage:

.clearValue(selector, [callback])
.clearValue(using, selector, [callback])

Parameters:

Name Type description
using
Optional
string

The locator strategy to use. See W3C Webdriver - locator strategies

selector string|object

The selector (CSS/Xpath) used to locate the element. Can either be a string or an object which specifies element properties.

callback
Optional
function

Optional callback function to be called when the command finishes.

Example:

module.exports = {
  demoTest(browser) {
    browser.clearValue('#login input[type=text]');

    browser.clearValue('#login input[type=text]', function(result) {
      console.log('clearValue result', result);
    });

    // with explicit locate strategy
    browser.clearValue('css selector', '#login input[type=text]');

    // with selector object - see https://nightwatchjs.org/guide#element-properties
    browser.clearValue({
      selector: '#login input[type=text]',
      index: 1,
      suppressNotFoundErrors: true
    });

    browser.clearValue({
      selector: '#login input[type=text]',
      timeout: 2000 // overwrite the default timeout (in ms) to check if the element is present
    });
  }
}

Examples

The example below navigates to google.com, searches for the term "nightwatch.js", then clears the input using clearValue command and finally verifies if the results container is empty:


module.exports = {
  before : function(browser) {
    // see https://github.com/nightwatchjs/nightwatch/blob/main/examples/globalsModule.js#L12
    browser.globals.waitForConditionTimeout = 5000;
  },

  'clearValue example test' : function (browser) {

    browser
      .url('https://google.com')
      .waitForElementVisible('input[type=text]')
      .setValue('input[type=text]', 'nightwatch.js')
      .click('button[type=submit]')
      .expect.element('#rcnt').text.to.contain('nightwatchjs.org/');

    browser
      .clearValue('input[type=text]')
      .expect.element('#rcnt').text.to.equal('');
  },

  after : function(browser) {
    browser.end();
  }
};

Output

[Clear Value] Test Suite
============================

Running:  clearValue example test
 ✔ Element  was visible after 68 milliseconds.
 ✔ Expected element <#rcnt> text to contain: "nightwatchjs.org/" - condition was met in 763ms
 ✔ Expected element <#rcnt> text to equal: "" - condition was met in 36ms

OK. 3 assertions passed. (7.593s)

Possible Errors

Here are the type of errors that you might get when using clearValue. Full error details are available when running nightwatch with --verbose flag.

  • invalid element state - if the referenced element is disabled or is not displayed.
  • element not visible - if the referenced element is not visible on the page (either is hidden by CSS, has 0-width, or has 0-height)

W3C WebDriver spec: