mirror of
https://github.com/microsoft/playwright.git
synced 2024-12-12 11:50:22 +03:00
fix: support regexp flags with locator.withText() (#10779)
This commit is contained in:
parent
a08a41f6c9
commit
fdb633dc8b
@ -99,9 +99,9 @@ export class Locator implements api.Locator {
|
||||
}
|
||||
|
||||
withText(text: string | RegExp): Locator {
|
||||
const matcher = isRegExp(text) ? 'text-matches' : 'has-text';
|
||||
const source = escapeWithQuotes(isRegExp(text) ? text.source : text, '"');
|
||||
return new Locator(this._frame, this._selector + ` >> :scope:${matcher}(${source})`);
|
||||
if (isRegExp(text))
|
||||
return new Locator(this._frame, this._selector + ` >> :scope:text-matches(${escapeWithQuotes(text.source, '"')}, "${text.flags}")`);
|
||||
return new Locator(this._frame, this._selector + ` >> :scope:has-text(${escapeWithQuotes(text, '"')})`);
|
||||
}
|
||||
|
||||
frameLocator(selector: string): FrameLocator {
|
||||
|
@ -84,3 +84,8 @@ it('should filter by regex with quotes', async ({ page }) => {
|
||||
await page.setContent(`<div>Hello "world"</div><div>Hello world</div>`);
|
||||
await expect(page.locator('div').withText(/Hello "world"/)).toHaveText('Hello "world"');
|
||||
});
|
||||
|
||||
it('should filter by regex and regexp flags', async ({ page }) => {
|
||||
await page.setContent(`<div>Hello "world"</div><div>Hello world</div>`);
|
||||
await expect(page.locator('div').withText(/hElLo "world"/i)).toHaveText('Hello "world"');
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user