Skip to content

Commit 0c6217a

Browse files
committed
cherry-pick(#32699): fix(codegen): use content_frame property in python
1 parent f96b487 commit 0c6217a

File tree

3 files changed

+32
-32
lines changed

3 files changed

+32
-32
lines changed

packages/playwright-core/src/server/codegen/csharp.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export class CSharpLanguageGenerator implements LanguageGenerator {
6868
return formatter.format();
6969
}
7070

71-
const locators = actionInContext.frame.framePath.map(selector => `.${this._asLocator(selector)}.ContentFrame()`);
71+
const locators = actionInContext.frame.framePath.map(selector => `.${this._asLocator(selector)}.ContentFrame`);
7272
const subject = `${pageAlias}${locators.join('')}`;
7373
const signals = toSignalMap(action);
7474

packages/playwright-core/src/server/codegen/python.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export class PythonLanguageGenerator implements LanguageGenerator {
5555
return formatter.format();
5656
}
5757

58-
const locators = actionInContext.frame.framePath.map(selector => `.${this._asLocator(selector)}.content_frame()`);
58+
const locators = actionInContext.frame.framePath.map(selector => `.${this._asLocator(selector)}.content_frame`);
5959
const subject = `${pageAlias}${locators.join('')}`;
6060
const signals = toSignalMap(action);
6161

tests/library/inspector/cli-codegen-3.spec.ts

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,13 @@ await page.GetByRole(AriaRole.Button, new() { Name = "Submit" }).Nth(1).ClickAsy
127127
page.locator("#frame1").contentFrame().getByText("Hello1").click();`);
128128

129129
expect.soft(sources.get('Python')!.text).toContain(`
130-
page.locator("#frame1").content_frame().get_by_text("Hello1").click()`);
130+
page.locator("#frame1").content_frame.get_by_text("Hello1").click()`);
131131

132132
expect.soft(sources.get('Python Async')!.text).toContain(`
133-
await page.locator("#frame1").content_frame().get_by_text("Hello1").click()`);
133+
await page.locator("#frame1").content_frame.get_by_text("Hello1").click()`);
134134

135135
expect.soft(sources.get('C#')!.text).toContain(`
136-
await page.Locator("#frame1").ContentFrame().GetByText("Hello1").ClickAsync();`);
136+
await page.Locator("#frame1").ContentFrame.GetByText("Hello1").ClickAsync();`);
137137

138138

139139
[sources] = await Promise.all([
@@ -148,13 +148,13 @@ await page.Locator("#frame1").ContentFrame().GetByText("Hello1").ClickAsync();`)
148148
page.locator("#frame1").contentFrame().locator("iframe").contentFrame().getByText("Hello2").click();`);
149149

150150
expect.soft(sources.get('Python')!.text).toContain(`
151-
page.locator("#frame1").content_frame().locator("iframe").content_frame().get_by_text("Hello2").click()`);
151+
page.locator("#frame1").content_frame.locator("iframe").content_frame.get_by_text("Hello2").click()`);
152152

153153
expect.soft(sources.get('Python Async')!.text).toContain(`
154-
await page.locator("#frame1").content_frame().locator("iframe").content_frame().get_by_text("Hello2").click()`);
154+
await page.locator("#frame1").content_frame.locator("iframe").content_frame.get_by_text("Hello2").click()`);
155155

156156
expect.soft(sources.get('C#')!.text).toContain(`
157-
await page.Locator("#frame1").ContentFrame().Locator("iframe").ContentFrame().GetByText("Hello2").ClickAsync();`);
157+
await page.Locator("#frame1").ContentFrame.Locator("iframe").ContentFrame.GetByText("Hello2").ClickAsync();`);
158158

159159

160160
[sources] = await Promise.all([
@@ -169,13 +169,13 @@ await page.Locator("#frame1").ContentFrame().Locator("iframe").ContentFrame().Ge
169169
page.locator("#frame1").contentFrame().locator("iframe").contentFrame().locator("iframe[name=\\"one\\"]").contentFrame().getByText("HelloNameOne").click();`);
170170

171171
expect.soft(sources.get('Python')!.text).toContain(`
172-
page.locator("#frame1").content_frame().locator("iframe").content_frame().locator("iframe[name=\\"one\\"]").content_frame().get_by_text("HelloNameOne").click()`);
172+
page.locator("#frame1").content_frame.locator("iframe").content_frame.locator("iframe[name=\\"one\\"]").content_frame.get_by_text("HelloNameOne").click()`);
173173

174174
expect.soft(sources.get('Python Async')!.text).toContain(`
175-
await page.locator("#frame1").content_frame().locator("iframe").content_frame().locator("iframe[name=\\"one\\"]").content_frame().get_by_text("HelloNameOne").click()`);
175+
await page.locator("#frame1").content_frame.locator("iframe").content_frame.locator("iframe[name=\\"one\\"]").content_frame.get_by_text("HelloNameOne").click()`);
176176

177177
expect.soft(sources.get('C#')!.text).toContain(`
178-
await page.Locator("#frame1").ContentFrame().Locator("iframe").ContentFrame().Locator("iframe[name=\\"one\\"]").ContentFrame().GetByText("HelloNameOne").ClickAsync();`);
178+
await page.Locator("#frame1").ContentFrame.Locator("iframe").ContentFrame.Locator("iframe[name=\\"one\\"]").ContentFrame.GetByText("HelloNameOne").ClickAsync();`);
179179

180180
[sources] = await Promise.all([
181181
recorder.waitForOutput('JavaScript', 'HelloNameAnonymous'),
@@ -189,13 +189,13 @@ await page.Locator("#frame1").ContentFrame().Locator("iframe").ContentFrame().Lo
189189
page.locator("#frame1").contentFrame().locator("iframe").contentFrame().locator("iframe").nth(2).contentFrame().getByText("HelloNameAnonymous").click();`);
190190

191191
expect.soft(sources.get('Python')!.text).toContain(`
192-
page.locator("#frame1").content_frame().locator("iframe").content_frame().locator("iframe").nth(2).content_frame().get_by_text("HelloNameAnonymous").click()`);
192+
page.locator("#frame1").content_frame.locator("iframe").content_frame.locator("iframe").nth(2).content_frame.get_by_text("HelloNameAnonymous").click()`);
193193

194194
expect.soft(sources.get('Python Async')!.text).toContain(`
195-
await page.locator("#frame1").content_frame().locator("iframe").content_frame().locator("iframe").nth(2).content_frame().get_by_text("HelloNameAnonymous").click()`);
195+
await page.locator("#frame1").content_frame.locator("iframe").content_frame.locator("iframe").nth(2).content_frame.get_by_text("HelloNameAnonymous").click()`);
196196

197197
expect.soft(sources.get('C#')!.text).toContain(`
198-
await page.Locator("#frame1").ContentFrame().Locator("iframe").ContentFrame().Locator("iframe").Nth(2).ContentFrame().GetByText("HelloNameAnonymous").ClickAsync();`);
198+
await page.Locator("#frame1").ContentFrame.Locator("iframe").ContentFrame.Locator("iframe").Nth(2).ContentFrame.GetByText("HelloNameAnonymous").ClickAsync();`);
199199
});
200200

201201
test('should generate frame locators with special characters in name attribute', async ({ page, openRecorder, server }) => {
@@ -217,13 +217,13 @@ await page.Locator("#frame1").ContentFrame().Locator("iframe").ContentFrame().Lo
217217
page.locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").contentFrame().getByRole(AriaRole.BUTTON, new FrameLocator.GetByRoleOptions().setName("Click me")).click()`);
218218

219219
expect.soft(sources.get('Python')!.text).toContain(`
220-
page.locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").content_frame().get_by_role("button", name="Click me").click()`);
220+
page.locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").content_frame.get_by_role("button", name="Click me").click()`);
221221

222222
expect.soft(sources.get('Python Async')!.text).toContain(`
223-
await page.locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").content_frame().get_by_role("button", name="Click me").click()`);
223+
await page.locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").content_frame.get_by_role("button", name="Click me").click()`);
224224

225225
expect.soft(sources.get('C#')!.text).toContain(`
226-
await page.Locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").ContentFrame().GetByRole(AriaRole.Button, new() { Name = "Click me" }).ClickAsync();`);
226+
await page.Locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").ContentFrame.GetByRole(AriaRole.Button, new() { Name = "Click me" }).ClickAsync();`);
227227
});
228228

229229
test('should generate frame locators with title attribute', async ({ page, openRecorder, server }) => {
@@ -246,15 +246,15 @@ await page.Locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").Cont
246246
);
247247

248248
expect.soft(sources.get('Python')!.text).toContain(
249-
`page.locator(\"iframe[title=\\\"hello world\\\"]\").content_frame().get_by_role(\"button\", name=\"Click me\").click()`
249+
`page.locator(\"iframe[title=\\\"hello world\\\"]\").content_frame.get_by_role(\"button\", name=\"Click me\").click()`
250250
);
251251

252252
expect.soft(sources.get('Python Async')!.text).toContain(
253-
`await page.locator("iframe[title=\\\"hello world\\\"]").content_frame().get_by_role("button", name="Click me").click()`
253+
`await page.locator("iframe[title=\\\"hello world\\\"]").content_frame.get_by_role("button", name="Click me").click()`
254254
);
255255

256256
expect.soft(sources.get('C#')!.text).toContain(
257-
`await page.Locator("iframe[title=\\\"hello world\\\"]").ContentFrame().GetByRole(AriaRole.Button, new() { Name = "Click me" }).ClickAsync();`
257+
`await page.Locator("iframe[title=\\\"hello world\\\"]").ContentFrame.GetByRole(AriaRole.Button, new() { Name = "Click me" }).ClickAsync();`
258258
);
259259
});
260260

@@ -278,15 +278,15 @@ await page.Locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").Cont
278278
);
279279

280280
expect.soft(sources.get('Python')!.text).toContain(
281-
`page.locator(\"iframe[name=\\\"hello world\\\"]\").content_frame().get_by_role(\"button\", name=\"Click me\").click()`
281+
`page.locator(\"iframe[name=\\\"hello world\\\"]\").content_frame.get_by_role(\"button\", name=\"Click me\").click()`
282282
);
283283

284284
expect.soft(sources.get('Python Async')!.text).toContain(
285-
`await page.locator("iframe[name=\\\"hello world\\\"]").content_frame().get_by_role("button", name="Click me").click()`
285+
`await page.locator("iframe[name=\\\"hello world\\\"]").content_frame.get_by_role("button", name="Click me").click()`
286286
);
287287

288288
expect.soft(sources.get('C#')!.text).toContain(
289-
`await page.Locator("iframe[name=\\\"hello world\\\"]").ContentFrame().GetByRole(AriaRole.Button, new() { Name = "Click me" }).ClickAsync();`
289+
`await page.Locator("iframe[name=\\\"hello world\\\"]").ContentFrame.GetByRole(AriaRole.Button, new() { Name = "Click me" }).ClickAsync();`
290290
);
291291
});
292292

@@ -310,15 +310,15 @@ await page.Locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").Cont
310310
);
311311

312312
expect.soft(sources.get('Python')!.text).toContain(
313-
`page.locator(\"#hello-world\").content_frame().get_by_role(\"button\", name=\"Click me\").click()`
313+
`page.locator(\"#hello-world\").content_frame.get_by_role(\"button\", name=\"Click me\").click()`
314314
);
315315

316316
expect.soft(sources.get('Python Async')!.text).toContain(
317-
`await page.locator("#hello-world").content_frame().get_by_role("button", name="Click me").click()`
317+
`await page.locator("#hello-world").content_frame.get_by_role("button", name="Click me").click()`
318318
);
319319

320320
expect.soft(sources.get('C#')!.text).toContain(
321-
`await page.Locator("#hello-world").ContentFrame().GetByRole(AriaRole.Button, new() { Name = "Click me" }).ClickAsync();`
321+
`await page.Locator("#hello-world").ContentFrame.GetByRole(AriaRole.Button, new() { Name = "Click me" }).ClickAsync();`
322322
);
323323
});
324324

@@ -342,15 +342,15 @@ await page.Locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").Cont
342342
);
343343

344344
expect.soft(sources.get('Python')!.text).toContain(
345-
`page.locator(\"[data-testid=\\\"my-testid\\\"]\").content_frame().get_by_role(\"button\", name=\"Click me\").click()`
345+
`page.locator(\"[data-testid=\\\"my-testid\\\"]\").content_frame.get_by_role(\"button\", name=\"Click me\").click()`
346346
);
347347

348348
expect.soft(sources.get('Python Async')!.text).toContain(
349-
`await page.locator("[data-testid=\\\"my-testid\\\"]").content_frame().get_by_role("button", name="Click me").click()`
349+
`await page.locator("[data-testid=\\\"my-testid\\\"]").content_frame.get_by_role("button", name="Click me").click()`
350350
);
351351

352352
expect.soft(sources.get('C#')!.text).toContain(
353-
`await page.Locator("[data-testid=\\\"my-testid\\\"]").ContentFrame().GetByRole(AriaRole.Button, new() { Name = "Click me" }).ClickAsync();`
353+
`await page.Locator("[data-testid=\\\"my-testid\\\"]").ContentFrame.GetByRole(AriaRole.Button, new() { Name = "Click me" }).ClickAsync();`
354354
);
355355
});
356356

@@ -371,13 +371,13 @@ await page.Locator("iframe[name=\\"foo\\\\<bar\\\\'\\\\\\"\\\\\`\\\\>\\"]").Cont
371371
page.locator("#frame1").contentFrame().getByRole(AriaRole.BUTTON, new FrameLocator.GetByRoleOptions().setName("Submit")).click();`);
372372

373373
expect.soft(sources.get('Python')!.text).toContain(`
374-
page.locator("#frame1").content_frame().get_by_role("button", name="Submit").click()`);
374+
page.locator("#frame1").content_frame.get_by_role("button", name="Submit").click()`);
375375

376376
expect.soft(sources.get('Python Async')!.text).toContain(`
377-
await page.locator("#frame1").content_frame().get_by_role("button", name="Submit").click()`);
377+
await page.locator("#frame1").content_frame.get_by_role("button", name="Submit").click()`);
378378

379379
expect.soft(sources.get('C#')!.text).toContain(`
380-
await page.Locator("#frame1").ContentFrame().GetByRole(AriaRole.Button, new() { Name = "Submit" }).ClickAsync();`);
380+
await page.Locator("#frame1").ContentFrame.GetByRole(AriaRole.Button, new() { Name = "Submit" }).ClickAsync();`);
381381
});
382382

383383
test('should generate getByTestId', async ({ page, openRecorder }) => {

0 commit comments

Comments
 (0)