mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
fix(codegen): use name attribute for frame elements (#14609)
This commit is contained in:
parent
79d356f0cc
commit
40bfdb0f4e
@ -161,7 +161,7 @@ function buildCandidates(injectedScript: InjectedScript, element: Element): Sele
|
|||||||
if (element.getAttribute('role'))
|
if (element.getAttribute('role'))
|
||||||
candidates.push({ engine: 'css', selector: `${cssEscape(element.nodeName.toLowerCase())}[role=${quoteAttributeValue(element.getAttribute('role')!)}]` , score: 50 });
|
candidates.push({ engine: 'css', selector: `${cssEscape(element.nodeName.toLowerCase())}[role=${quoteAttributeValue(element.getAttribute('role')!)}]` , score: 50 });
|
||||||
|
|
||||||
if (element.getAttribute('name') && ['BUTTON', 'FORM', 'FIELDSET', 'IFRAME', 'INPUT', 'KEYGEN', 'OBJECT', 'OUTPUT', 'SELECT', 'TEXTAREA', 'MAP', 'META', 'PARAM'].includes(element.nodeName))
|
if (element.getAttribute('name') && ['BUTTON', 'FORM', 'FIELDSET', 'FRAME', 'IFRAME', 'INPUT', 'KEYGEN', 'OBJECT', 'OUTPUT', 'SELECT', 'TEXTAREA', 'MAP', 'META', 'PARAM'].includes(element.nodeName))
|
||||||
candidates.push({ engine: 'css', selector: `${cssEscape(element.nodeName.toLowerCase())}[name=${quoteAttributeValue(element.getAttribute('name')!)}]`, score: 50 });
|
candidates.push({ engine: 'css', selector: `${cssEscape(element.nodeName.toLowerCase())}[name=${quoteAttributeValue(element.getAttribute('name')!)}]`, score: 50 });
|
||||||
if (['INPUT', 'TEXTAREA'].includes(element.nodeName) && element.getAttribute('type') !== 'hidden') {
|
if (['INPUT', 'TEXTAREA'].includes(element.nodeName) && element.getAttribute('type') !== 'hidden') {
|
||||||
if (element.getAttribute('type'))
|
if (element.getAttribute('type'))
|
||||||
|
|||||||
@ -301,6 +301,12 @@ it.describe('selector generator', () => {
|
|||||||
await page.setContent(`<form><${tagName} name="foo"></${tagName}><${tagName} name="bar"></${tagName}></form>`);
|
await page.setContent(`<form><${tagName} name="foo"></${tagName}><${tagName} name="bar"></${tagName}></form>`);
|
||||||
expect(await generate(page, '[name=bar]')).toBe(`${tagName}[name="bar"]`);
|
expect(await generate(page, '[name=bar]')).toBe(`${tagName}[name="bar"]`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await page.setContent(`<iframe name="foo"></iframe><iframe name="bar"></iframe>`);
|
||||||
|
expect(await generate(page, '[name=bar]')).toBe(`iframe[name="bar"]`);
|
||||||
|
|
||||||
|
await page.setContent(`<frameset><frame name="foo"></frame><frame name="bar"></frame></frameset>`);
|
||||||
|
expect(await generate(page, '[name=bar]')).toBe(`frame[name="bar"]`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should work with tricky attributes', async ({ page }) => {
|
it('should work with tricky attributes', async ({ page }) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user