From 5bf566180a66a443c230ee4103a03dea893fdea9 Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Mon, 21 Oct 2024 17:23:34 +0200 Subject: [PATCH] add csharp --- .../playwright-core/src/utils/isomorphic/locatorGenerators.ts | 2 ++ tests/library/locator-generator.spec.ts | 3 +++ 2 files changed, 5 insertions(+) diff --git a/packages/playwright-core/src/utils/isomorphic/locatorGenerators.ts b/packages/playwright-core/src/utils/isomorphic/locatorGenerators.ts index 431c30366b..93ed7ccf80 100644 --- a/packages/playwright-core/src/utils/isomorphic/locatorGenerators.ts +++ b/packages/playwright-core/src/utils/isomorphic/locatorGenerators.ts @@ -573,6 +573,8 @@ export class CSharpLocatorFactory implements LocatorFactory { if (options.hasNotText !== undefined) return `Locator(${this.quote(body as string)}, new() { ${this.toHasNotText(options.hasNotText)} })`; return `Locator(${this.quote(body as string)})`; + case 'frame-locator': + return `FrameLocator(${this.quote(body as string)})`; case 'frame': return `ContentFrame`; case 'nth': diff --git a/tests/library/locator-generator.spec.ts b/tests/library/locator-generator.spec.ts index 1b951b533f..d8124767f6 100644 --- a/tests/library/locator-generator.spec.ts +++ b/tests/library/locator-generator.spec.ts @@ -593,4 +593,7 @@ it('parseLocator frames', async () => { expect.soft(parseLocator('python', `locator("iframe").content_frame.get_by_text("foo")`, '')).toBe(`iframe >> internal:control=enter-frame >> internal:text=\"foo\"i`); expect.soft(parseLocator('python', `frame_locator("iframe").get_by_text("foo")`, '')).toBe(`iframe >> internal:control=enter-frame >> internal:text=\"foo\"i`); expect.soft(parseLocator('python', `frame_locator("css=iframe").get_by_text("foo")`, '')).toBe(`css=iframe >> internal:control=enter-frame >> internal:text=\"foo\"i`); + + expect.soft(parseLocator('csharp', `Locator("iframe").ContentFrame.GetByText("foo")`, '')).toBe(`iframe >> internal:control=enter-frame >> internal:text=\"foo\"i`); + expect.soft(parseLocator('csharp', `FrameLocator("iframe").GetByText("foo")`, '')).toBe(`iframe >> internal:control=enter-frame >> internal:text=\"foo\"i`); });