chore: do not emit comments from codegen (#17747)

This commit is contained in:
Pavel Feldman 2022-09-30 11:36:54 -08:00 committed by GitHub
parent be150796f4
commit 5754fb9c6d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 0 additions and 201 deletions

View file

@ -19,7 +19,6 @@ import type { LanguageGenerator, LanguageGeneratorOptions } from './language';
import { sanitizeDeviceOptions, toSignalMap } from './language'; import { sanitizeDeviceOptions, toSignalMap } from './language';
import type { ActionInContext } from './codeGenerator'; import type { ActionInContext } from './codeGenerator';
import type { Action } from './recorderActions'; import type { Action } from './recorderActions';
import { actionTitle } from './recorderActions';
import type { MouseClickOptions } from './utils'; import type { MouseClickOptions } from './utils';
import { toModifiers } from './utils'; import { toModifiers } from './utils';
import { escapeWithQuotes } from '../../utils/isomorphic/stringUtils'; import { escapeWithQuotes } from '../../utils/isomorphic/stringUtils';
@ -65,7 +64,6 @@ export class CSharpLanguageGenerator implements LanguageGenerator {
if (this._mode !== 'library') if (this._mode !== 'library')
pageAlias = pageAlias.replace('page', 'Page'); pageAlias = pageAlias.replace('page', 'Page');
const formatter = new CSharpFormatter(8); const formatter = new CSharpFormatter(8);
formatter.add('// ' + actionTitle(action));
if (action.name === 'openPage') { if (action.name === 'openPage') {
formatter.add(`var ${pageAlias} = await context.NewPageAsync();`); formatter.add(`var ${pageAlias} = await context.NewPageAsync();`);

View file

@ -19,7 +19,6 @@ import type { LanguageGenerator, LanguageGeneratorOptions } from './language';
import { toSignalMap } from './language'; import { toSignalMap } from './language';
import type { ActionInContext } from './codeGenerator'; import type { ActionInContext } from './codeGenerator';
import type { Action } from './recorderActions'; import type { Action } from './recorderActions';
import { actionTitle } from './recorderActions';
import type { MouseClickOptions } from './utils'; import type { MouseClickOptions } from './utils';
import { toModifiers } from './utils'; import { toModifiers } from './utils';
import deviceDescriptors from '../deviceDescriptors'; import deviceDescriptors from '../deviceDescriptors';
@ -37,7 +36,6 @@ export class JavaLanguageGenerator implements LanguageGenerator {
const pageAlias = actionInContext.frame.pageAlias; const pageAlias = actionInContext.frame.pageAlias;
const formatter = new JavaScriptFormatter(6); const formatter = new JavaScriptFormatter(6);
formatter.newLine(); formatter.newLine();
formatter.add('// ' + actionTitle(action));
if (action.name === 'openPage') { if (action.name === 'openPage') {
formatter.add(`Page ${pageAlias} = context.newPage();`); formatter.add(`Page ${pageAlias} = context.newPage();`);

View file

@ -19,7 +19,6 @@ import type { LanguageGenerator, LanguageGeneratorOptions } from './language';
import { sanitizeDeviceOptions, toSignalMap } from './language'; import { sanitizeDeviceOptions, toSignalMap } from './language';
import type { ActionInContext } from './codeGenerator'; import type { ActionInContext } from './codeGenerator';
import type { Action } from './recorderActions'; import type { Action } from './recorderActions';
import { actionTitle } from './recorderActions';
import type { MouseClickOptions } from './utils'; import type { MouseClickOptions } from './utils';
import { toModifiers } from './utils'; import { toModifiers } from './utils';
import deviceDescriptors from '../deviceDescriptors'; import deviceDescriptors from '../deviceDescriptors';
@ -46,7 +45,6 @@ export class JavaScriptLanguageGenerator implements LanguageGenerator {
const pageAlias = actionInContext.frame.pageAlias; const pageAlias = actionInContext.frame.pageAlias;
const formatter = new JavaScriptFormatter(2); const formatter = new JavaScriptFormatter(2);
formatter.newLine(); formatter.newLine();
formatter.add('// ' + actionTitle(action));
if (action.name === 'openPage') { if (action.name === 'openPage') {
formatter.add(`const ${pageAlias} = await context.newPage();`); formatter.add(`const ${pageAlias} = await context.newPage();`);

View file

@ -19,7 +19,6 @@ import type { LanguageGenerator, LanguageGeneratorOptions } from './language';
import { sanitizeDeviceOptions, toSignalMap } from './language'; import { sanitizeDeviceOptions, toSignalMap } from './language';
import type { ActionInContext } from './codeGenerator'; import type { ActionInContext } from './codeGenerator';
import type { Action } from './recorderActions'; import type { Action } from './recorderActions';
import { actionTitle } from './recorderActions';
import type { MouseClickOptions } from './utils'; import type { MouseClickOptions } from './utils';
import { toModifiers } from './utils'; import { toModifiers } from './utils';
import { escapeWithQuotes } from '../../utils/isomorphic/stringUtils'; import { escapeWithQuotes } from '../../utils/isomorphic/stringUtils';
@ -53,7 +52,6 @@ export class PythonLanguageGenerator implements LanguageGenerator {
const pageAlias = actionInContext.frame.pageAlias; const pageAlias = actionInContext.frame.pageAlias;
const formatter = new PythonFormatter(4); const formatter = new PythonFormatter(4);
formatter.newLine(); formatter.newLine();
formatter.add('# ' + actionTitle(action));
if (action.name === 'openPage') { if (action.name === 'openPage') {
formatter.add(`${pageAlias} = ${this._awaitPrefix}context.new_page()`); formatter.add(`${pageAlias} = ${this._awaitPrefix}context.new_page()`);

View file

@ -127,38 +127,3 @@ export type FrameDescription = {
name?: string; name?: string;
selectorsChain?: string[]; selectorsChain?: string[];
}; };
export function actionTitle(action: Action): string {
switch (action.name) {
case 'openPage':
return `Open new page`;
case 'closePage':
return `Close page`;
case 'check':
return `Check ${action.selector}`;
case 'uncheck':
return `Uncheck ${action.selector}`;
case 'click': {
if (action.clickCount === 1)
return `Click ${action.selector}`;
if (action.clickCount === 2)
return `Double click ${action.selector}`;
if (action.clickCount === 3)
return `Triple click ${action.selector}`;
return `${action.clickCount}× click`;
}
case 'fill':
return `Fill ${action.selector}`;
case 'setInputFiles':
if (action.files.length === 0)
return `Clear selected files`;
else
return `Upload ${action.files.join(', ')}`;
case 'navigate':
return `Go to ${action.url}`;
case 'press':
return `Press ${action.key}` + (action.modifiers ? ' with modifiers' : '');
case 'select':
return `Select ${action.options.join(', ')}`;
}
}

View file

@ -35,23 +35,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=Submit
await page.locator('text=Submit').click();`); await page.locator('text=Submit').click();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=Submit
page.locator("text=Submit").click()`); page.locator("text=Submit").click()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=Submit
await page.locator("text=Submit").click()`); await page.locator("text=Submit").click()`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=Submit
page.locator("text=Submit").click();`); page.locator("text=Submit").click();`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click text=Submit
await page.Locator("text=Submit").ClickAsync();`); await page.Locator("text=Submit").ClickAsync();`);
expect(message.text()).toBe('click'); expect(message.text()).toBe('click');
@ -83,7 +78,6 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=Submit
await page.locator('text=Submit').click();`); await page.locator('text=Submit').click();`);
expect(message.text()).toBe('click'); expect(message.text()).toBe('click');
}); });
@ -114,7 +108,6 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click canvas
await page.locator('canvas').click({ await page.locator('canvas').click({
position: { position: {
x: 250, x: 250,
@ -123,20 +116,16 @@ test.describe('cli codegen', () => {
});`); });`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click canvas
page.locator("canvas").click(position={"x":250,"y":250})`); page.locator("canvas").click(position={"x":250,"y":250})`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click canvas
await page.locator("canvas").click(position={"x":250,"y":250})`); await page.locator("canvas").click(position={"x":250,"y":250})`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click canvas
page.locator("canvas").click(new Locator.ClickOptions() page.locator("canvas").click(new Locator.ClickOptions()
.setPosition(250, 250));`); .setPosition(250, 250));`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click canvas
await page.Locator("canvas").ClickAsync(new LocatorClickOptions await page.Locator("canvas").ClickAsync(new LocatorClickOptions
{ {
Position = new Position Position = new Position
@ -169,23 +158,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=Submit
await page.locator('text=Submit').click();`); await page.locator('text=Submit').click();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=Submit
page.locator("text=Submit").click()`); page.locator("text=Submit").click()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=Submit
await page.locator("text=Submit").click()`); await page.locator("text=Submit").click()`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=Submit
page.locator("text=Submit").click();`); page.locator("text=Submit").click();`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click text=Submit
await page.Locator("text=Submit").ClickAsync();`); await page.Locator("text=Submit").ClickAsync();`);
expect(message.text()).toBe('click'); expect(message.text()).toBe('click');
@ -220,7 +204,6 @@ test.describe('cli codegen', () => {
page.dispatchEvent('div', 'click', { detail: 1 }) page.dispatchEvent('div', 'click', { detail: 1 })
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=Some long text here
await page.locator('text=Some long text here').click();`); await page.locator('text=Some long text here').click();`);
expect(message.text()).toBe('click'); expect(message.text()).toBe('click');
}); });
@ -239,22 +222,17 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Fill input[name="name"]
await page.locator('input[name="name"]').fill('John');`); await page.locator('input[name="name"]').fill('John');`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Fill input[name="name"]
page.locator("input[name=\\\"name\\\"]").fill("John");`); page.locator("input[name=\\\"name\\\"]").fill("John");`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Fill input[name="name"]
page.locator(\"input[name=\\\"name\\\"]\").fill(\"John\")`); page.locator(\"input[name=\\\"name\\\"]\").fill(\"John\")`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Fill input[name="name"]
await page.locator(\"input[name=\\\"name\\\"]\").fill(\"John\")`); await page.locator(\"input[name=\\\"name\\\"]\").fill(\"John\")`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Fill input[name="name"]
await page.Locator(\"input[name=\\\"name\\\"]\").FillAsync(\"John\");`); await page.Locator(\"input[name=\\\"name\\\"]\").FillAsync(\"John\");`);
expect(message.text()).toBe('John'); expect(message.text()).toBe('John');
@ -278,22 +256,17 @@ test.describe('cli codegen', () => {
})() })()
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Fill input[name="name"]
await page.locator('input[name="name"]').fill('てすと');`); await page.locator('input[name="name"]').fill('てすと');`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Fill input[name="name"]
page.locator("input[name=\\\"name\\\"]").fill("てすと");`); page.locator("input[name=\\\"name\\\"]").fill("てすと");`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Fill input[name="name"]
page.locator(\"input[name=\\\"name\\\"]\").fill(\"てすと\")`); page.locator(\"input[name=\\\"name\\\"]\").fill(\"てすと\")`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Fill input[name="name"]
await page.locator(\"input[name=\\\"name\\\"]\").fill(\"てすと\")`); await page.locator(\"input[name=\\\"name\\\"]\").fill(\"てすと\")`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Fill input[name="name"]
await page.Locator(\"input[name=\\\"name\\\"]\").FillAsync(\"てすと\");`); await page.Locator(\"input[name=\\\"name\\\"]\").FillAsync(\"てすと\");`);
expect(message.text()).toBe('てすと'); expect(message.text()).toBe('てすと');
@ -312,7 +285,6 @@ test.describe('cli codegen', () => {
page.fill('textarea', 'John') page.fill('textarea', 'John')
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Fill textarea[name="name"]
await page.locator('textarea[name="name"]').fill('John');`); await page.locator('textarea[name="name"]').fill('John');`);
expect(message.text()).toBe('John'); expect(message.text()).toBe('John');
}); });
@ -334,23 +306,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Press Enter with modifiers
await page.locator('input[name="name"]').press('Shift+Enter');`); await page.locator('input[name="name"]').press('Shift+Enter');`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Press Enter with modifiers
page.locator("input[name=\\\"name\\\"]").press("Shift+Enter");`); page.locator("input[name=\\\"name\\\"]").press("Shift+Enter");`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Press Enter with modifiers
page.locator(\"input[name=\\\"name\\\"]\").press(\"Shift+Enter\")`); page.locator(\"input[name=\\\"name\\\"]\").press(\"Shift+Enter\")`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Press Enter with modifiers
await page.locator(\"input[name=\\\"name\\\"]\").press(\"Shift+Enter\")`); await page.locator(\"input[name=\\\"name\\\"]\").press(\"Shift+Enter\")`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Press Enter with modifiers
await page.Locator(\"input[name=\\\"name\\\"]\").PressAsync(\"Shift+Enter\");`); await page.Locator(\"input[name=\\\"name\\\"]\").PressAsync(\"Shift+Enter\");`);
expect(messages[0].text()).toBe('press'); expect(messages[0].text()).toBe('press');
@ -376,15 +343,12 @@ test.describe('cli codegen', () => {
const text = recorder.sources().get('JavaScript').text; const text = recorder.sources().get('JavaScript').text;
expect(text).toContain(` expect(text).toContain(`
// Fill input[name="one"]
await page.locator('input[name="one"]').fill('foobar123');`); await page.locator('input[name="one"]').fill('foobar123');`);
expect(text).toContain(` expect(text).toContain(`
// Press Tab
await page.locator('input[name="one"]').press('Tab');`); await page.locator('input[name="one"]').press('Tab');`);
expect(text).toContain(` expect(text).toContain(`
// Fill input[name="two"]
await page.locator('input[name="two"]').fill('barfoo321');`); await page.locator('input[name="two"]').fill('barfoo321');`);
}); });
@ -406,7 +370,6 @@ test.describe('cli codegen', () => {
page.press('input', 'ArrowDown') page.press('input', 'ArrowDown')
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Press ArrowDown
await page.locator('input[name="name"]').press('ArrowDown');`); await page.locator('input[name="name"]').press('ArrowDown');`);
expect(messages[0].text()).toBe('press:ArrowDown'); expect(messages[0].text()).toBe('press:ArrowDown');
}); });
@ -430,7 +393,6 @@ test.describe('cli codegen', () => {
page.press('input', 'ArrowDown') page.press('input', 'ArrowDown')
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Press ArrowDown
await page.locator('input[name="name"]').press('ArrowDown');`); await page.locator('input[name="name"]').press('ArrowDown');`);
expect(messages.length).toBe(2); expect(messages.length).toBe(2);
expect(messages[0].text()).toBe('down:ArrowDown'); expect(messages[0].text()).toBe('down:ArrowDown');
@ -452,23 +414,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Check input[name="accept"]
await page.locator('input[name="accept"]').check();`); await page.locator('input[name="accept"]').check();`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Check input[name="accept"]
page.locator("input[name=\\\"accept\\\"]").check();`); page.locator("input[name=\\\"accept\\\"]").check();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Check input[name="accept"]
page.locator(\"input[name=\\\"accept\\\"]\").check()`); page.locator(\"input[name=\\\"accept\\\"]\").check()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Check input[name="accept"]
await page.locator(\"input[name=\\\"accept\\\"]\").check()`); await page.locator(\"input[name=\\\"accept\\\"]\").check()`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Check input[name="accept"]
await page.Locator(\"input[name=\\\"accept\\\"]\").CheckAsync();`); await page.Locator(\"input[name=\\\"accept\\\"]\").CheckAsync();`);
expect(message.text()).toBe('true'); expect(message.text()).toBe('true');
@ -489,7 +446,6 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Check input[name="accept"]
await page.locator('input[name="accept"]').check();`); await page.locator('input[name="accept"]').check();`);
expect(message.text()).toBe('true'); expect(message.text()).toBe('true');
}); });
@ -509,7 +465,6 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Check input[name="accept"]
await page.locator('input[name="accept"]').check();`); await page.locator('input[name="accept"]').check();`);
expect(message.text()).toBe('true'); expect(message.text()).toBe('true');
}); });
@ -529,23 +484,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Uncheck input[name="accept"]
await page.locator('input[name="accept"]').uncheck();`); await page.locator('input[name="accept"]').uncheck();`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Uncheck input[name="accept"]
page.locator("input[name=\\\"accept\\\"]").uncheck();`); page.locator("input[name=\\\"accept\\\"]").uncheck();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Uncheck input[name="accept"]
page.locator(\"input[name=\\\"accept\\\"]\").uncheck()`); page.locator(\"input[name=\\\"accept\\\"]\").uncheck()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Uncheck input[name="accept"]
await page.locator(\"input[name=\\\"accept\\\"]\").uncheck()`); await page.locator(\"input[name=\\\"accept\\\"]\").uncheck()`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Uncheck input[name="accept"]
await page.Locator(\"input[name=\\\"accept\\\"]\").UncheckAsync();`); await page.Locator(\"input[name=\\\"accept\\\"]\").UncheckAsync();`);
expect(message.text()).toBe('false'); expect(message.text()).toBe('false');
@ -566,23 +516,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Select 2
await page.locator('select').selectOption('2');`); await page.locator('select').selectOption('2');`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Select 2
page.locator("select").selectOption("2");`); page.locator("select").selectOption("2");`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Select 2
page.locator(\"select\").select_option(\"2\")`); page.locator(\"select\").select_option(\"2\")`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Select 2
await page.locator(\"select\").select_option(\"2\")`); await page.locator(\"select\").select_option(\"2\")`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Select 2
await page.Locator(\"select\").SelectOptionAsync(new[] { \"2\" });`); await page.Locator(\"select\").SelectOptionAsync(new[] { \"2\" });`);
expect(message.text()).toBe('2'); expect(message.text()).toBe('2');
@ -604,26 +549,22 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=link
const [page1] = await Promise.all([ const [page1] = await Promise.all([
page.waitForEvent('popup'), page.waitForEvent('popup'),
page.locator('text=link').click() page.locator('text=link').click()
]);`); ]);`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=link
Page page1 = page.waitForPopup(() -> { Page page1 = page.waitForPopup(() -> {
page.locator("text=link").click(); page.locator("text=link").click();
});`); });`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=link
with page.expect_popup() as popup_info: with page.expect_popup() as popup_info:
page.locator(\"text=link\").click() page.locator(\"text=link\").click()
page1 = popup_info.value`); page1 = popup_info.value`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=link
async with page.expect_popup() as popup_info: async with page.expect_popup() as popup_info:
await page.locator(\"text=link\").click() await page.locator(\"text=link\").click()
page1 = await popup_info.value`); page1 = await popup_info.value`);
@ -651,37 +592,30 @@ test.describe('cli codegen', () => {
]); ]);
expect.soft(sources.get('JavaScript').text).toContain(` expect.soft(sources.get('JavaScript').text).toContain(`
// Click text=link
await page.locator('text=link').click(); await page.locator('text=link').click();
await page.waitForURL('about:blank#foo');`); await page.waitForURL('about:blank#foo');`);
expect.soft(sources.get('Playwright Test').text).toContain(` expect.soft(sources.get('Playwright Test').text).toContain(`
// Click text=link
await page.locator('text=link').click(); await page.locator('text=link').click();
await expect(page).toHaveURL('about:blank#foo');`); await expect(page).toHaveURL('about:blank#foo');`);
expect.soft(sources.get('Java').text).toContain(` expect.soft(sources.get('Java').text).toContain(`
// Click text=link
page.locator("text=link").click(); page.locator("text=link").click();
assertThat(page).hasURL("about:blank#foo");`); assertThat(page).hasURL("about:blank#foo");`);
expect.soft(sources.get('Python').text).toContain(` expect.soft(sources.get('Python').text).toContain(`
# Click text=link
page.locator("text=link").click() page.locator("text=link").click()
page.wait_for_url("about:blank#foo")`); page.wait_for_url("about:blank#foo")`);
expect.soft(sources.get('Python Async').text).toContain(` expect.soft(sources.get('Python Async').text).toContain(`
# Click text=link
await page.locator("text=link").click() await page.locator("text=link").click()
await page.wait_for_url("about:blank#foo")`); await page.wait_for_url("about:blank#foo")`);
expect.soft(sources.get('Pytest').text).toContain(` expect.soft(sources.get('Pytest').text).toContain(`
# Click text=link
page.locator("text=link").click() page.locator("text=link").click()
expect(page).to_have_url("about:blank#foo")`); expect(page).to_have_url("about:blank#foo")`);
expect.soft(sources.get('C#').text).toContain(` expect.soft(sources.get('C#').text).toContain(`
// Click text=link
await page.Locator("text=link").ClickAsync(); await page.Locator("text=link").ClickAsync();
await page.WaitForURLAsync("about:blank#foo");`); await page.WaitForURLAsync("about:blank#foo");`);
@ -704,27 +638,22 @@ test.describe('cli codegen', () => {
]); ]);
expect.soft(sources.get('JavaScript').text).toContain(` expect.soft(sources.get('JavaScript').text).toContain(`
// Click text=link
await page.locator('text=link').click(); await page.locator('text=link').click();
await page.waitForURL('about:blank#foo');`); await page.waitForURL('about:blank#foo');`);
expect.soft(sources.get('Java').text).toContain(` expect.soft(sources.get('Java').text).toContain(`
// Click text=link
page.locator("text=link").click(); page.locator("text=link").click();
assertThat(page).hasURL("about:blank#foo");`); assertThat(page).hasURL("about:blank#foo");`);
expect.soft(sources.get('Python').text).toContain(` expect.soft(sources.get('Python').text).toContain(`
# Click text=link
page.locator(\"text=link\").click() page.locator(\"text=link\").click()
page.wait_for_url("about:blank#foo")`); page.wait_for_url("about:blank#foo")`);
expect.soft(sources.get('Python Async').text).toContain(` expect.soft(sources.get('Python Async').text).toContain(`
# Click text=link
await page.locator(\"text=link\").click() await page.locator(\"text=link\").click()
await page.wait_for_url("about:blank#foo")`); await page.wait_for_url("about:blank#foo")`);
expect.soft(sources.get('C#').text).toContain(` expect.soft(sources.get('C#').text).toContain(`
// Click text=link
await page.Locator(\"text=link\").ClickAsync(); await page.Locator(\"text=link\").ClickAsync();
await page.WaitForURLAsync(\"about:blank#foo\");`); await page.WaitForURLAsync(\"about:blank#foo\");`);

View file

@ -28,23 +28,18 @@ test.describe('cli codegen', () => {
const sources = await recorder.waitForOutput('JavaScript', `page.goto`); const sources = await recorder.waitForOutput('JavaScript', `page.goto`);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Open new page
const page = await context.newPage();`); const page = await context.newPage();`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Open new page
Page page = context.newPage();`); Page page = context.newPage();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Open new page
page = context.new_page()`); page = context.new_page()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Open new page
page = await context.new_page()`); page = await context.new_page()`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Open new page
var page = await context.NewPageAsync();`); var page = await context.NewPageAsync();`);
}); });
@ -56,23 +51,18 @@ test.describe('cli codegen', () => {
const sources = await recorder.waitForOutput('JavaScript', 'page1'); const sources = await recorder.waitForOutput('JavaScript', 'page1');
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Open new page
const page1 = await context.newPage();`); const page1 = await context.newPage();`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Open new page
Page page1 = context.newPage();`); Page page1 = context.newPage();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Open new page
page1 = context.new_page()`); page1 = context.new_page()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Open new page
page1 = await context.new_page()`); page1 = await context.new_page()`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Open new page
var page1 = await context.NewPageAsync();`); var page1 = await context.NewPageAsync();`);
}); });
@ -132,23 +122,18 @@ test.describe('cli codegen', () => {
const sources = await recorder.waitForOutput('JavaScript', 'setInputFiles'); const sources = await recorder.waitForOutput('JavaScript', 'setInputFiles');
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Upload file-to-upload.txt
await page.locator('input[type="file"]').setInputFiles('file-to-upload.txt');`); await page.locator('input[type="file"]').setInputFiles('file-to-upload.txt');`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Upload file-to-upload.txt
page.locator("input[type=\\\"file\\\"]").setInputFiles(Paths.get("file-to-upload.txt"));`); page.locator("input[type=\\\"file\\\"]").setInputFiles(Paths.get("file-to-upload.txt"));`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Upload file-to-upload.txt
page.locator(\"input[type=\\\"file\\\"]\").set_input_files(\"file-to-upload.txt\")`); page.locator(\"input[type=\\\"file\\\"]\").set_input_files(\"file-to-upload.txt\")`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Upload file-to-upload.txt
await page.locator(\"input[type=\\\"file\\\"]\").set_input_files(\"file-to-upload.txt\")`); await page.locator(\"input[type=\\\"file\\\"]\").set_input_files(\"file-to-upload.txt\")`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Upload file-to-upload.txt
await page.Locator(\"input[type=\\\"file\\\"]\").SetInputFilesAsync(new[] { \"file-to-upload.txt\" });`); await page.Locator(\"input[type=\\\"file\\\"]\").SetInputFilesAsync(new[] { \"file-to-upload.txt\" });`);
}); });
@ -169,23 +154,18 @@ test.describe('cli codegen', () => {
const sources = await recorder.waitForOutput('JavaScript', 'setInputFiles'); const sources = await recorder.waitForOutput('JavaScript', 'setInputFiles');
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Upload file-to-upload.txt, file-to-upload-2.txt
await page.locator('input[type=\"file\"]').setInputFiles(['file-to-upload.txt', 'file-to-upload-2.txt']);`); await page.locator('input[type=\"file\"]').setInputFiles(['file-to-upload.txt', 'file-to-upload-2.txt']);`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Upload file-to-upload.txt, file-to-upload-2.txt
page.locator("input[type=\\\"file\\\"]").setInputFiles(new Path[] {Paths.get("file-to-upload.txt"), Paths.get("file-to-upload-2.txt")});`); page.locator("input[type=\\\"file\\\"]").setInputFiles(new Path[] {Paths.get("file-to-upload.txt"), Paths.get("file-to-upload-2.txt")});`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Upload file-to-upload.txt, file-to-upload-2.txt
page.locator(\"input[type=\\\"file\\\"]\").set_input_files([\"file-to-upload.txt\", \"file-to-upload-2.txt\"]`); page.locator(\"input[type=\\\"file\\\"]\").set_input_files([\"file-to-upload.txt\", \"file-to-upload-2.txt\"]`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Upload file-to-upload.txt, file-to-upload-2.txt
await page.locator(\"input[type=\\\"file\\\"]\").set_input_files([\"file-to-upload.txt\", \"file-to-upload-2.txt\"]`); await page.locator(\"input[type=\\\"file\\\"]\").set_input_files([\"file-to-upload.txt\", \"file-to-upload-2.txt\"]`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Upload file-to-upload.txt, file-to-upload-2.txt
await page.Locator(\"input[type=\\\"file\\\"]\").SetInputFilesAsync(new[] { \"file-to-upload.txt\", \"file-to-upload-2.txt\" });`); await page.Locator(\"input[type=\\\"file\\\"]\").SetInputFilesAsync(new[] { \"file-to-upload.txt\", \"file-to-upload-2.txt\" });`);
}); });
@ -206,23 +186,18 @@ test.describe('cli codegen', () => {
const sources = await recorder.waitForOutput('JavaScript', 'setInputFiles'); const sources = await recorder.waitForOutput('JavaScript', 'setInputFiles');
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Clear selected files
await page.locator('input[type=\"file\"]').setInputFiles([]);`); await page.locator('input[type=\"file\"]').setInputFiles([]);`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Clear selected files
page.locator("input[type=\\\"file\\\"]").setInputFiles(new Path[0]);`); page.locator("input[type=\\\"file\\\"]").setInputFiles(new Path[0]);`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Clear selected files
page.locator(\"input[type=\\\"file\\\"]\").set_input_files([])`); page.locator(\"input[type=\\\"file\\\"]\").set_input_files([])`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Clear selected files
await page.locator(\"input[type=\\\"file\\\"]\").set_input_files([])`); await page.locator(\"input[type=\\\"file\\\"]\").set_input_files([])`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Clear selected files
await page.Locator(\"input[type=\\\"file\\\"]\").SetInputFilesAsync(new[] { });`); await page.Locator(\"input[type=\\\"file\\\"]\").SetInputFilesAsync(new[] { });`);
}); });
@ -254,7 +229,6 @@ test.describe('cli codegen', () => {
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
const context = await browser.newContext();`); const context = await browser.newContext();`);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=Download
const [download] = await Promise.all([ const [download] = await Promise.all([
page.waitForEvent('download'), page.waitForEvent('download'),
page.locator('text=Download').click() page.locator('text=Download').click()
@ -263,7 +237,6 @@ test.describe('cli codegen', () => {
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
BrowserContext context = browser.newContext();`); BrowserContext context = browser.newContext();`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=Download
Download download = page.waitForDownload(() -> { Download download = page.waitForDownload(() -> {
page.locator("text=Download").click(); page.locator("text=Download").click();
});`); });`);
@ -271,7 +244,6 @@ test.describe('cli codegen', () => {
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
context = browser.new_context()`); context = browser.new_context()`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=Download
with page.expect_download() as download_info: with page.expect_download() as download_info:
page.locator(\"text=Download\").click() page.locator(\"text=Download\").click()
download = download_info.value`); download = download_info.value`);
@ -279,7 +251,6 @@ test.describe('cli codegen', () => {
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
context = await browser.new_context()`); context = await browser.new_context()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=Download
async with page.expect_download() as download_info: async with page.expect_download() as download_info:
await page.locator(\"text=Download\").click() await page.locator(\"text=Download\").click()
download = await download_info.value`); download = await download_info.value`);
@ -287,7 +258,6 @@ test.describe('cli codegen', () => {
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
var context = await browser.NewContextAsync();`); var context = await browser.NewContextAsync();`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click text=Download
var download1 = await page.RunAndWaitForDownloadAsync(async () => var download1 = await page.RunAndWaitForDownloadAsync(async () =>
{ {
await page.Locator(\"text=Download\").ClickAsync(); await page.Locator(\"text=Download\").ClickAsync();
@ -309,7 +279,6 @@ test.describe('cli codegen', () => {
const sources = await recorder.waitForOutput('JavaScript', 'once'); const sources = await recorder.waitForOutput('JavaScript', 'once');
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=click me
page.once('dialog', dialog => { page.once('dialog', dialog => {
console.log(\`Dialog message: \${dialog.message()}\`); console.log(\`Dialog message: \${dialog.message()}\`);
dialog.dismiss().catch(() => {}); dialog.dismiss().catch(() => {});
@ -317,7 +286,6 @@ test.describe('cli codegen', () => {
await page.locator('text=click me').click();`); await page.locator('text=click me').click();`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=click me
page.onceDialog(dialog -> { page.onceDialog(dialog -> {
System.out.println(String.format("Dialog message: %s", dialog.message())); System.out.println(String.format("Dialog message: %s", dialog.message()));
dialog.dismiss(); dialog.dismiss();
@ -325,17 +293,14 @@ test.describe('cli codegen', () => {
page.locator("text=click me").click();`); page.locator("text=click me").click();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=click me
page.once(\"dialog\", lambda dialog: dialog.dismiss()) page.once(\"dialog\", lambda dialog: dialog.dismiss())
page.locator(\"text=click me\").click()`); page.locator(\"text=click me\").click()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=click me
page.once(\"dialog\", lambda dialog: dialog.dismiss()) page.once(\"dialog\", lambda dialog: dialog.dismiss())
await page.locator(\"text=click me\").click()`); await page.locator(\"text=click me\").click()`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click text=click me
void page_Dialog1_EventHandler(object sender, IDialog dialog) void page_Dialog1_EventHandler(object sender, IDialog dialog)
{ {
Console.WriteLine($\"Dialog message: {dialog.Message}\"); Console.WriteLine($\"Dialog message: {dialog.Message}\");
@ -375,20 +340,16 @@ test.describe('cli codegen', () => {
if (browserName !== 'firefox') { if (browserName !== 'firefox') {
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Open new page
const page1 = await context.newPage(); const page1 = await context.newPage();
await page1.goto('about:blank?foo');`); await page1.goto('about:blank?foo');`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Open new page
page1 = await context.new_page() page1 = await context.new_page()
await page1.goto("about:blank?foo")`); await page1.goto("about:blank?foo")`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Open new page
var page1 = await context.NewPageAsync(); var page1 = await context.NewPageAsync();
await page1.GotoAsync("about:blank?foo");`); await page1.GotoAsync("about:blank?foo");`);
} else { } else {
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=link
const [page1] = await Promise.all([ const [page1] = await Promise.all([
page.waitForEvent('popup'), page.waitForEvent('popup'),
page.locator('text=link').click({ page.locator('text=link').click({
@ -576,23 +537,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Fill textarea[name="name"]
await page.locator('textarea[name="name"]').fill('Hello\\'"\`\\nWorld');`); await page.locator('textarea[name="name"]').fill('Hello\\'"\`\\nWorld');`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Fill textarea[name="name"]
page.locator("textarea[name=\\\"name\\\"]").fill("Hello'\\"\`\\nWorld");`); page.locator("textarea[name=\\\"name\\\"]").fill("Hello'\\"\`\\nWorld");`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Fill textarea[name="name"]
page.locator(\"textarea[name=\\\"name\\\"]\").fill(\"Hello'\\"\`\\nWorld\")`); page.locator(\"textarea[name=\\\"name\\\"]\").fill(\"Hello'\\"\`\\nWorld\")`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Fill textarea[name="name"]
await page.locator(\"textarea[name=\\\"name\\\"]\").fill(\"Hello'\\"\`\\nWorld\")`); await page.locator(\"textarea[name=\\\"name\\\"]\").fill(\"Hello'\\"\`\\nWorld\")`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Fill textarea[name="name"]
await page.Locator(\"textarea[name=\\\"name\\\"]\").FillAsync(\"Hello'\\"\`\\nWorld\");`); await page.Locator(\"textarea[name=\\\"name\\\"]\").FillAsync(\"Hello'\\"\`\\nWorld\");`);
expect(message.text()).toBe('Hello\'\"\`\nWorld'); expect(message.text()).toBe('Hello\'\"\`\nWorld');

View file

@ -37,23 +37,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=Submit >> nth=0
await page.locator('text=Submit').first().click();`); await page.locator('text=Submit').first().click();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=Submit >> nth=0
page.locator("text=Submit").first.click()`); page.locator("text=Submit").first.click()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=Submit >> nth=0
await page.locator("text=Submit").first.click()`); await page.locator("text=Submit").first.click()`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=Submit >> nth=0
page.locator("text=Submit").first().click();`); page.locator("text=Submit").first().click();`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click text=Submit >> nth=0
await page.Locator("text=Submit").First.ClickAsync();`); await page.Locator("text=Submit").First.ClickAsync();`);
expect(message.text()).toBe('click1'); expect(message.text()).toBe('click1');
@ -77,23 +72,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=Submit >> nth=1
await page.locator('text=Submit').nth(1).click();`); await page.locator('text=Submit').nth(1).click();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=Submit >> nth=1
page.locator("text=Submit").nth(1).click()`); page.locator("text=Submit").nth(1).click()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=Submit >> nth=1
await page.locator("text=Submit").nth(1).click()`); await page.locator("text=Submit").nth(1).click()`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=Submit >> nth=1
page.locator("text=Submit").nth(1).click();`); page.locator("text=Submit").nth(1).click();`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click text=Submit >> nth=1
await page.Locator("text=Submit").Nth(1).ClickAsync();`); await page.Locator("text=Submit").Nth(1).ClickAsync();`);
expect(message.text()).toBe('click2'); expect(message.text()).toBe('click2');
@ -131,23 +121,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=Hello1
await page.frameLocator('#frame1').locator('text=Hello1').click();`); await page.frameLocator('#frame1').locator('text=Hello1').click();`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=Hello1
page.frameLocator("#frame1").locator("text=Hello1").click();`); page.frameLocator("#frame1").locator("text=Hello1").click();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=Hello1
page.frame_locator("#frame1").locator("text=Hello1").click()`); page.frame_locator("#frame1").locator("text=Hello1").click()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=Hello1
await page.frame_locator("#frame1").locator("text=Hello1").click()`); await page.frame_locator("#frame1").locator("text=Hello1").click()`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click text=Hello1
await page.FrameLocator("#frame1").Locator("text=Hello1").ClickAsync();`); await page.FrameLocator("#frame1").Locator("text=Hello1").ClickAsync();`);
@ -157,23 +142,18 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=Hello2
await page.frameLocator('#frame1').frameLocator('iframe').locator('text=Hello2').click();`); await page.frameLocator('#frame1').frameLocator('iframe').locator('text=Hello2').click();`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=Hello2
page.frameLocator("#frame1").frameLocator("iframe").locator("text=Hello2").click();`); page.frameLocator("#frame1").frameLocator("iframe").locator("text=Hello2").click();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=Hello2
page.frame_locator("#frame1").frame_locator("iframe").locator("text=Hello2").click()`); page.frame_locator("#frame1").frame_locator("iframe").locator("text=Hello2").click()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=Hello2
await page.frame_locator("#frame1").frame_locator("iframe").locator("text=Hello2").click()`); await page.frame_locator("#frame1").frame_locator("iframe").locator("text=Hello2").click()`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click text=Hello2
await page.FrameLocator("#frame1").FrameLocator("iframe").Locator("text=Hello2").ClickAsync();`); await page.FrameLocator("#frame1").FrameLocator("iframe").Locator("text=Hello2").ClickAsync();`);
@ -183,25 +163,20 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=HelloNameOne
await page.frame({ await page.frame({
name: 'one' name: 'one'
}).locator('text=HelloNameOne').click();`); }).locator('text=HelloNameOne').click();`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=HelloNameOne
page.frame("one").locator("text=HelloNameOne").click();`); page.frame("one").locator("text=HelloNameOne").click();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=HelloNameOne
page.frame(name=\"one\").locator(\"text=HelloNameOne\").click()`); page.frame(name=\"one\").locator(\"text=HelloNameOne\").click()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=HelloNameOne
await page.frame(name=\"one\").locator(\"text=HelloNameOne\").click()`); await page.frame(name=\"one\").locator(\"text=HelloNameOne\").click()`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click text=HelloNameOne
await page.Frame(\"one\").Locator(\"text=HelloNameOne\").ClickAsync();`); await page.Frame(\"one\").Locator(\"text=HelloNameOne\").ClickAsync();`);
@ -211,25 +186,20 @@ test.describe('cli codegen', () => {
]); ]);
expect(sources.get('JavaScript').text).toContain(` expect(sources.get('JavaScript').text).toContain(`
// Click text=HelloNameAnonymous
await page.frame({ await page.frame({
url: 'about:blank' url: 'about:blank'
}).locator('text=HelloNameAnonymous').click();`); }).locator('text=HelloNameAnonymous').click();`);
expect(sources.get('Java').text).toContain(` expect(sources.get('Java').text).toContain(`
// Click text=HelloNameAnonymous
page.frameByUrl("about:blank").locator("text=HelloNameAnonymous").click();`); page.frameByUrl("about:blank").locator("text=HelloNameAnonymous").click();`);
expect(sources.get('Python').text).toContain(` expect(sources.get('Python').text).toContain(`
# Click text=HelloNameAnonymous
page.frame(url=\"about:blank\").locator(\"text=HelloNameAnonymous\").click()`); page.frame(url=\"about:blank\").locator(\"text=HelloNameAnonymous\").click()`);
expect(sources.get('Python Async').text).toContain(` expect(sources.get('Python Async').text).toContain(`
# Click text=HelloNameAnonymous
await page.frame(url=\"about:blank\").locator(\"text=HelloNameAnonymous\").click()`); await page.frame(url=\"about:blank\").locator(\"text=HelloNameAnonymous\").click()`);
expect(sources.get('C#').text).toContain(` expect(sources.get('C#').text).toContain(`
// Click text=HelloNameAnonymous
await page.FrameByUrl(\"about:blank\").Locator(\"text=HelloNameAnonymous\").ClickAsync();`); await page.FrameByUrl(\"about:blank\").Locator(\"text=HelloNameAnonymous\").ClickAsync();`);
}); });
}); });

View file

@ -235,7 +235,6 @@ public class Tests : PageTest
[TestMethod] [TestMethod]
public async Task MyTest() public async Task MyTest()
{ {
// Go to ${emptyHTML}
await Page.GotoAsync("${emptyHTML}"); await Page.GotoAsync("${emptyHTML}");
} }
@ -264,7 +263,6 @@ public class Tests : PageTest
[Test] [Test]
public async Task MyTest() public async Task MyTest()
{ {
// Go to ${emptyHTML}
await Page.GotoAsync("${emptyHTML}"); await Page.GotoAsync("${emptyHTML}");
} }

View file

@ -101,13 +101,10 @@ test('should save the codegen output to a file if specified', async ({ browserNa
}); });
const context = await browser.newContext(); const context = await browser.newContext();
// Open new page
const page = await context.newPage(); const page = await context.newPage();
// Go to ${emptyHTML}
await page.goto('${emptyHTML}'); await page.goto('${emptyHTML}');
// Close page
await page.close(); await page.close();
// --------------------- // ---------------------

View file

@ -49,7 +49,6 @@ def browser_context_args(browser_context_args, playwright):
def test_example(page: Page) -> None: def test_example(page: Page) -> None:
# Go to ${emptyHTML}
page.goto("${emptyHTML}") page.goto("${emptyHTML}")
`); `);
}); });
@ -64,7 +63,6 @@ test('should save the codegen output to a file if specified', async ({ runCLI },
def test_example(page: Page) -> None: def test_example(page: Page) -> None:
# Go to ${emptyHTML}
page.goto("${emptyHTML}") page.goto("${emptyHTML}")
`); `);
}); });

View file

@ -97,13 +97,10 @@ async def run(playwright: Playwright) -> None:
browser = await playwright.${browserName}.launch(${launchOptions(channel)}) browser = await playwright.${browserName}.launch(${launchOptions(channel)})
context = await browser.new_context() context = await browser.new_context()
# Open new page
page = await context.new_page() page = await context.new_page()
# Go to ${emptyHTML}
await page.goto("${emptyHTML}") await page.goto("${emptyHTML}")
# Close page
await page.close() await page.close()
# --------------------- # ---------------------

View file

@ -87,13 +87,10 @@ def run(playwright: Playwright) -> None:
browser = playwright.${browserName}.launch(${launchOptions(channel)}) browser = playwright.${browserName}.launch(${launchOptions(channel)})
context = browser.new_context() context = browser.new_context()
# Open new page
page = context.new_page() page = context.new_page()
# Go to ${emptyHTML}
page.goto("${emptyHTML}") page.goto("${emptyHTML}")
# Close page
page.close() page.close()
# --------------------- # ---------------------