Determine an element's size in pixels. For W3C Webdriver compatible clients (such as GeckoDriver), this command is equivalent to getLocation and both return
the dimensions and coordinates of the given element:

  • x: X axis position of the top-left corner of the element, in CSS pixels
  • y: Y axis position of the top-left corner of the element, in CSS pixels
  • height: Height of the element’s bounding rectangle in CSS pixels;
  • width: Width of the web element’s bounding rectangle in CSS pixels.

The command getElementRect() 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. You can suppress element not found errors by specifying the selector argument as an object and passing the suppressNotFoundErrors = true option.

For more info on working with DOM elements in Nightwatch, refer to the Finding & interacting with DOM Elements guide page.

Usage

.getElementRect(selector, [callback])
.getElementRect(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 function

Callback function which is called with the result value.

Returns

Type description
{width: number, height: number} The width and height of the element in pixels

Example

module.exports = {
  demoTest(browser) {
    browser.getElementRect('#login', function(result) {
      console.log('result', result);
    });

    // with explicit locate strategy
    browser.getElementRect('css selector', '#login', function(result) {
      console.log('result', result);
    });

    // with selector object - see https://nightwatchjs.org/guide#element-properties
    browser.getElementRect({
      selector: '#login',
      index: 1,
      suppressNotFoundErrors: true
    }, function(result) {
      console.log('result', result);
    });
  },

  demoTestAsync: async function(browser) {
    const result = await browser.getElementRect('#login');
    console.log('classList', result);
  }
}

W3C WebDriver spec