Determines if an element is enabled, as indicated by the 'disabled' attribute.

isEnabled() 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.


.isEnabled(selector, callback)
.isEnabled(using, selector, callback)


Name Type description

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 function

Callback function which is called with the result value.


module.exports = {
  demoTest(browser) {
    browser.isEnabled('#main select option.first', function(result) {
      this.assert.equal(typeof result, "object");
      this.assert.equal(result.status, 0);
      this.assert.equal(result.value, true);

    // with explicit locate strategy
    browser.isEnabled('css selector', '#main select option.first');

    // with selector object - see
      selector: '#main ul li a',
      index: 1,
      suppressNotFoundErrors: true

      selector: '#main select option.first',
      timeout: 2000 // overwrite the default timeout (in ms) to check if the element is present

  demoTestAsync: async function(browser) {
    const result = await browser.isEnabled('#main select option.first');
    console.log('isVisible result', result);

W3C WebDriver spec