constructor(elementType, query, attrValuePairs, _options, ...args) {
    if (attrValuePairs instanceof ElementWrapper) {
      const selectorName = elementTypeToSelectorName(elementType);

      throw new TypeError(
        `You are passing a \`ElementWrapper\` to a \`${selectorName}\` selector. Refer https://docs.taiko.dev/api/${selectorName.toLowerCase()}/ for the correct parameters`,
      );
    }

    const { selector, options } = prepareParameters(
      attrValuePairs,
      _options,
      ...args,
    );
    this.selector = selector;
    this._options = options;
    this._description = desc(selector, query, elementType, options);
  }
Wrapper object of all found elements. This list mimics the behaviour of {@link Element}
by exposing similar methods. The call of these methods gets delegated to first element.
By default, the `ElementWrapper` acts as a proxy to the first matching element and hence
it forwards function calls that belong to {@link Element}