fix(generator): .NET getByRole w/ name (#18060)
This commit is contained in:
parent
3f2d58eeec
commit
a60073d664
|
|
@ -22,7 +22,7 @@ await page.GetByLabel("User Name").FillAsync("John");
|
||||||
|
|
||||||
await page.GetByLabel("Password").FillAsync("secret-password");
|
await page.GetByLabel("Password").FillAsync("secret-password");
|
||||||
|
|
||||||
await page.GetByRole("button", new() { Name = "Sign in" }).ClickAsync();
|
await page.GetByRole("button", new() { NameString = "Sign in" }).ClickAsync();
|
||||||
|
|
||||||
await Expect(page.GetByText("Welcome, John!")).ToBeVisibleAsync();
|
await Expect(page.GetByText("Welcome, John!")).ToBeVisibleAsync();
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -285,8 +285,10 @@ export class CSharpLocatorFactory implements LocatorFactory {
|
||||||
return `Last`;
|
return `Last`;
|
||||||
case 'role':
|
case 'role':
|
||||||
const attrs: string[] = [];
|
const attrs: string[] = [];
|
||||||
for (const [name, value] of Object.entries(options.attrs!))
|
for (const [name, value] of Object.entries(options.attrs!)) {
|
||||||
attrs.push(`${toTitleCase(name)} = ${typeof value === 'string' ? this.quote(value) : value}`);
|
const optionKey = name === 'name' ? 'NameString' : toTitleCase(name);
|
||||||
|
attrs.push(`${optionKey} = ${typeof value === 'string' ? this.quote(value) : value}`);
|
||||||
|
}
|
||||||
const attrString = attrs.length ? `, new() { ${attrs.join(', ')} }` : '';
|
const attrString = attrs.length ? `, new() { ${attrs.join(', ')} }` : '';
|
||||||
return `GetByRole(AriaRole.${toTitleCase(body as string)}${attrString})`;
|
return `GetByRole(AriaRole.${toTitleCase(body as string)}${attrString})`;
|
||||||
case 'has-text':
|
case 'has-text':
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ test.describe('cli codegen', () => {
|
||||||
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit")).click()`);
|
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit")).click()`);
|
||||||
|
|
||||||
expect.soft(sources.get('C#').text).toContain(`
|
expect.soft(sources.get('C#').text).toContain(`
|
||||||
await page.GetByRole(AriaRole.Button, new () { Name = "Submit" }).ClickAsync();`);
|
await page.GetByRole(AriaRole.Button, new() { NameString = "Submit" }).ClickAsync();`);
|
||||||
|
|
||||||
expect(message.text()).toBe('click');
|
expect(message.text()).toBe('click');
|
||||||
});
|
});
|
||||||
|
|
@ -170,7 +170,7 @@ test.describe('cli codegen', () => {
|
||||||
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit")).click()`);
|
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit")).click()`);
|
||||||
|
|
||||||
expect.soft(sources.get('C#').text).toContain(`
|
expect.soft(sources.get('C#').text).toContain(`
|
||||||
await page.GetByRole(AriaRole.Button, new () { Name = "Submit" }).ClickAsync();`);
|
await page.GetByRole(AriaRole.Button, new() { NameString = "Submit" }).ClickAsync();`);
|
||||||
|
|
||||||
expect(message.text()).toBe('click');
|
expect(message.text()).toBe('click');
|
||||||
});
|
});
|
||||||
|
|
@ -572,7 +572,7 @@ test.describe('cli codegen', () => {
|
||||||
expect.soft(sources.get('C#').text).toContain(`
|
expect.soft(sources.get('C#').text).toContain(`
|
||||||
var page1 = await page.RunAndWaitForPopupAsync(async () =>
|
var page1 = await page.RunAndWaitForPopupAsync(async () =>
|
||||||
{
|
{
|
||||||
await page.GetByRole(AriaRole.Link, new () { Name = "link" }).ClickAsync();
|
await page.GetByRole(AriaRole.Link, new() { NameString = "link" }).ClickAsync();
|
||||||
});`);
|
});`);
|
||||||
|
|
||||||
expect(popup.url()).toBe('about:blank');
|
expect(popup.url()).toBe('about:blank');
|
||||||
|
|
|
||||||
|
|
@ -260,7 +260,7 @@ test.describe('cli codegen', () => {
|
||||||
expect.soft(sources.get('C#').text).toContain(`
|
expect.soft(sources.get('C#').text).toContain(`
|
||||||
var download1 = await page.RunAndWaitForDownloadAsync(async () =>
|
var download1 = await page.RunAndWaitForDownloadAsync(async () =>
|
||||||
{
|
{
|
||||||
await page.GetByRole(AriaRole.Link, new () { Name = "Download" }).ClickAsync();
|
await page.GetByRole(AriaRole.Link, new() { NameString = "Download" }).ClickAsync();
|
||||||
});`);
|
});`);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -308,7 +308,7 @@ test.describe('cli codegen', () => {
|
||||||
page.Dialog -= page_Dialog1_EventHandler;
|
page.Dialog -= page_Dialog1_EventHandler;
|
||||||
}
|
}
|
||||||
page.Dialog += page_Dialog1_EventHandler;
|
page.Dialog += page_Dialog1_EventHandler;
|
||||||
await page.GetByRole(AriaRole.Button, new () { Name = "click me" }).ClickAsync();`);
|
await page.GetByRole(AriaRole.Button, new() { NameString = "click me" }).ClickAsync();`);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ test.describe('cli codegen', () => {
|
||||||
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit")).first().click();`);
|
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit")).first().click();`);
|
||||||
|
|
||||||
expect.soft(sources.get('C#').text).toContain(`
|
expect.soft(sources.get('C#').text).toContain(`
|
||||||
await page.GetByRole(AriaRole.Button, new () { Name = "Submit" }).First.ClickAsync();`);
|
await page.GetByRole(AriaRole.Button, new() { NameString = "Submit" }).First.ClickAsync();`);
|
||||||
|
|
||||||
expect(message.text()).toBe('click1');
|
expect(message.text()).toBe('click1');
|
||||||
});
|
});
|
||||||
|
|
@ -84,7 +84,7 @@ test.describe('cli codegen', () => {
|
||||||
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit")).nth(1).click();`);
|
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit")).nth(1).click();`);
|
||||||
|
|
||||||
expect.soft(sources.get('C#').text).toContain(`
|
expect.soft(sources.get('C#').text).toContain(`
|
||||||
await page.GetByRole(AriaRole.Button, new () { Name = "Submit" }).Nth(1).ClickAsync();`);
|
await page.GetByRole(AriaRole.Button, new() { NameString = "Submit" }).Nth(1).ClickAsync();`);
|
||||||
|
|
||||||
expect(message.text()).toBe('click2');
|
expect(message.text()).toBe('click2');
|
||||||
});
|
});
|
||||||
|
|
@ -226,7 +226,7 @@ test.describe('cli codegen', () => {
|
||||||
await page.frame_locator("#frame1").get_by_role("button", name="Submit").click()`);
|
await page.frame_locator("#frame1").get_by_role("button", name="Submit").click()`);
|
||||||
|
|
||||||
expect.soft(sources.get('C#').text).toContain(`
|
expect.soft(sources.get('C#').text).toContain(`
|
||||||
await page.FrameLocator("#frame1").GetByRole(AriaRole.Button, new () { Name = "Submit" }).ClickAsync();`);
|
await page.FrameLocator("#frame1").GetByRole(AriaRole.Button, new() { NameString = "Submit" }).ClickAsync();`);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should generate getByTestId', async ({ page, openRecorder }) => {
|
test('should generate getByTestId', async ({ page, openRecorder }) => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue