From c1ac15c6b22903cf17b5b105dffd0b8aabf083c3 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Fri, 15 Aug 2025 18:05:48 +0200 Subject: [PATCH] fix(browser): `locator.element()` returns `HTMLElement` or `SVGElement` (#8440) --- packages/browser/context.d.ts | 6 +++--- packages/browser/src/client/tester/locators/index.ts | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/browser/context.d.ts b/packages/browser/context.d.ts index 6a8c37da6..7518a41f0 100644 --- a/packages/browser/context.d.ts +++ b/packages/browser/context.d.ts @@ -544,7 +544,7 @@ export interface Locator extends LocatorSelectors { * * @see {@link https://vitest.dev/guide/browser/locators#element} */ - element(): Element + element(): HTMLElement | SVGElement /** * Returns an array of elements matching the selector. * @@ -552,7 +552,7 @@ export interface Locator extends LocatorSelectors { * * @see {@link https://vitest.dev/guide/browser/locators#elements} */ - elements(): Element[] + elements(): (HTMLElement | SVGElement)[] /** * Returns an element matching the selector. * @@ -561,7 +561,7 @@ export interface Locator extends LocatorSelectors { * * @see {@link https://vitest.dev/guide/browser/locators#query} */ - query(): Element | null + query(): HTMLElement | SVGElement | null /** * Wraps an array of `.elements()` matching the selector in a new `Locator`. * diff --git a/packages/browser/src/client/tester/locators/index.ts b/packages/browser/src/client/tester/locators/index.ts index 1885e68b0..d1c560366 100644 --- a/packages/browser/src/client/tester/locators/index.ts +++ b/packages/browser/src/client/tester/locators/index.ts @@ -204,12 +204,12 @@ export abstract class Locator { return this.locator(`internal:or=${JSON.stringify(locator._pwSelector || locator.selector)}`) } - public query(): Element | null { + public query(): HTMLElement | SVGElement | null { const parsedSelector = this._parsedSelector || (this._parsedSelector = selectorEngine.parseSelector(this._pwSelector || this.selector)) - return selectorEngine.querySelector(parsedSelector, document.documentElement, true) + return selectorEngine.querySelector(parsedSelector, document.documentElement, true) as HTMLElement | SVGElement } - public element(): Element { + public element(): HTMLElement | SVGElement { const element = this.query() if (!element) { throw getElementError(this._pwSelector || this.selector, this._container || document.body) @@ -217,9 +217,9 @@ export abstract class Locator { return element } - public elements(): Element[] { + public elements(): (HTMLElement | SVGElement)[] { const parsedSelector = this._parsedSelector || (this._parsedSelector = selectorEngine.parseSelector(this._pwSelector || this.selector)) - return selectorEngine.querySelectorAll(parsedSelector, document.documentElement) + return selectorEngine.querySelectorAll(parsedSelector, document.documentElement) as (HTMLElement | SVGElement)[] } public all(): Locator[] { -- 2.51.2