diff --git a/docs/src/api/class-locator.md b/docs/src/api/class-locator.md index 8318dc0c61..f4002654d4 100644 --- a/docs/src/api/class-locator.md +++ b/docs/src/api/class-locator.md @@ -2031,12 +2031,6 @@ When all steps combined have not finished during the specified [`option: timeout ### option: Locator.uncheck.trial = %%-input-trial-%% * since: v1.14 -## async method: Locator.viewportRatio -* since: v1.30 -- returns: <[float]> - -Returns the ratio of intersection between viewport and the element, according to the [intersection observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). - ## async method: Locator.waitFor * since: v1.16 diff --git a/packages/playwright-core/src/client/locator.ts b/packages/playwright-core/src/client/locator.ts index daec154fef..1e31261981 100644 --- a/packages/playwright-core/src/client/locator.ts +++ b/packages/playwright-core/src/client/locator.ts @@ -257,10 +257,6 @@ export class Locator implements api.Locator { return this._withElement((h, timeout) => h.scrollIntoViewIfNeeded({ ...options, timeout }), options.timeout); } - async viewportRatio(): Promise { - return (await this._frame._channel.viewportRatio({ selector: this._selector, strict: true })).value; - } - async selectOption(values: string | api.ElementHandle | SelectOption | string[] | api.ElementHandle[] | SelectOption[] | null, options: SelectOptionOptions = {}): Promise { return this._frame.selectOption(this._selector, values, { strict: true, ...options }); } diff --git a/packages/playwright-core/src/protocol/debug.ts b/packages/playwright-core/src/protocol/debug.ts index acf4cc7a0c..cde35816c8 100644 --- a/packages/playwright-core/src/protocol/debug.ts +++ b/packages/playwright-core/src/protocol/debug.ts @@ -66,7 +66,6 @@ export const commandsWithTracingSnapshots = new Set([ 'Frame.isEnabled', 'Frame.isHidden', 'Frame.isVisible', - 'Frame.viewportRatio', 'Frame.isEditable', 'Frame.press', 'Frame.selectOption', diff --git a/packages/playwright-core/src/protocol/validator.ts b/packages/playwright-core/src/protocol/validator.ts index f11d785f6f..85f6b5bcc8 100644 --- a/packages/playwright-core/src/protocol/validator.ts +++ b/packages/playwright-core/src/protocol/validator.ts @@ -1425,13 +1425,6 @@ scheme.FrameIsVisibleParams = tObject({ scheme.FrameIsVisibleResult = tObject({ value: tBoolean, }); -scheme.FrameViewportRatioParams = tObject({ - selector: tString, - strict: tOptional(tBoolean), -}); -scheme.FrameViewportRatioResult = tObject({ - value: tNumber, -}); scheme.FrameIsEditableParams = tObject({ selector: tString, strict: tOptional(tBoolean), diff --git a/packages/playwright-core/src/server/dispatchers/frameDispatcher.ts b/packages/playwright-core/src/server/dispatchers/frameDispatcher.ts index c8fbf67bd4..8098f3c934 100644 --- a/packages/playwright-core/src/server/dispatchers/frameDispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/frameDispatcher.ts @@ -203,10 +203,6 @@ export class FrameDispatcher extends Dispatcher { - return { value: await this._frame.viewportRatio(metadata, params.selector, params) }; - } - async hover(params: channels.FrameHoverParams, metadata: CallMetadata): Promise { return await this._frame.hover(metadata, params.selector, params); } diff --git a/packages/playwright-core/src/server/frames.ts b/packages/playwright-core/src/server/frames.ts index a583e73d2f..90261a8151 100644 --- a/packages/playwright-core/src/server/frames.ts +++ b/packages/playwright-core/src/server/frames.ts @@ -1318,22 +1318,6 @@ export class Frame extends SdkObject { }, this._page._timeoutSettings.timeout({})); } - async viewportRatio(metadata: CallMetadata, selector: string, options: types.StrictOptions = {}): Promise { - const controller = new ProgressController(metadata, this); - return controller.run(async progress => { - progress.log(` calculating viewport ratio of ${this._asLocator(selector)}`); - const resolved = await this._resolveInjectedForSelector(progress, selector, options); - if (!resolved) - return 0; - return await resolved.injected.evaluate(async (injected, { info }) => { - const element = injected.querySelector(info.parsed, document, info.strict); - if (!element) - return 0; - return await injected.viewportRatio(element); - }, { info: resolved.info }); - }, this._page._timeoutSettings.timeout({})); - } - async isHidden(metadata: CallMetadata, selector: string, options: types.StrictOptions = {}): Promise { return !(await this.isVisible(metadata, selector, options)); } diff --git a/packages/playwright-core/types/types.d.ts b/packages/playwright-core/types/types.d.ts index 5aa7f6643a..b497f8d60f 100644 --- a/packages/playwright-core/types/types.d.ts +++ b/packages/playwright-core/types/types.d.ts @@ -11963,12 +11963,6 @@ export interface Locator { trial?: boolean; }): Promise; - /** - * Returns the ratio of intersection between viewport and the element, according to the - * [intersection observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). - */ - viewportRatio(): Promise; - /** * Returns when element specified by locator satisfies the `state` option. * diff --git a/packages/protocol/src/channels.ts b/packages/protocol/src/channels.ts index 42e96c7eef..70168edfb1 100644 --- a/packages/protocol/src/channels.ts +++ b/packages/protocol/src/channels.ts @@ -2196,7 +2196,6 @@ export interface FrameChannel extends FrameEventTarget, Channel { isEnabled(params: FrameIsEnabledParams, metadata?: Metadata): Promise; isHidden(params: FrameIsHiddenParams, metadata?: Metadata): Promise; isVisible(params: FrameIsVisibleParams, metadata?: Metadata): Promise; - viewportRatio(params: FrameViewportRatioParams, metadata?: Metadata): Promise; isEditable(params: FrameIsEditableParams, metadata?: Metadata): Promise; press(params: FramePressParams, metadata?: Metadata): Promise; querySelector(params: FrameQuerySelectorParams, metadata?: Metadata): Promise; @@ -2594,16 +2593,6 @@ export type FrameIsVisibleOptions = { export type FrameIsVisibleResult = { value: boolean, }; -export type FrameViewportRatioParams = { - selector: string, - strict?: boolean, -}; -export type FrameViewportRatioOptions = { - strict?: boolean, -}; -export type FrameViewportRatioResult = { - value: number, -}; export type FrameIsEditableParams = { selector: string, strict?: boolean, diff --git a/packages/protocol/src/protocol.yml b/packages/protocol/src/protocol.yml index bf553adc2c..acfcf8223f 100644 --- a/packages/protocol/src/protocol.yml +++ b/packages/protocol/src/protocol.yml @@ -1908,15 +1908,6 @@ Frame: tracing: snapshot: true - viewportRatio: - parameters: - selector: string - strict: boolean? - returns: - value: number - tracing: - snapshot: true - isEditable: parameters: selector: string diff --git a/tests/page/locator-misc-2.spec.ts b/tests/page/locator-misc-2.spec.ts index 53b4f3def0..bfaefd69d6 100644 --- a/tests/page/locator-misc-2.spec.ts +++ b/tests/page/locator-misc-2.spec.ts @@ -155,17 +155,3 @@ it('locator.count should work with deleted Map in main world', async ({ page }) await expect(page.locator('#searchResultTableDiv .x-grid3-row')).toHaveCount(0); }); -it('locator.viewportRatio', async ({ page }) => { - await page.setContent(` - -
-
-
-
- `); - expect.soft(await page.locator('#fills-viewport').viewportRatio()).toBe(1); - expect.soft(await page.locator('#half-viewport').viewportRatio()).toBe(1); - expect.soft(await page.locator('#twice-viewport').viewportRatio()).toBe(0.5); - expect.soft(await page.locator('#off-viewport').viewportRatio()).toBe(0); - expect.soft(await page.locator('#does-not-exist').viewportRatio()).toBe(0); -});