mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
feat(console api): support locator.filter (#19389)
This commit is contained in:
parent
256e9fd443
commit
3c17a2603a
@ -53,21 +53,13 @@ class Locator {
|
||||
self.getByText = (text: string | RegExp, options?: { exact?: boolean }): Locator => self.locator(getByTextSelector(text, options));
|
||||
self.getByTitle = (text: string | RegExp, options?: { exact?: boolean }): Locator => self.locator(getByTitleSelector(text, options));
|
||||
self.getByRole = (role: string, options: ByRoleOptions = {}): Locator => self.locator(getByRoleSelector(role, options));
|
||||
self.filter = (options?: { hasText?: string | RegExp, has?: Locator }): Locator => new Locator(injectedScript, selector, options);
|
||||
}
|
||||
}
|
||||
|
||||
type ConsoleAPIInterface = {
|
||||
$: (selector: string) => void;
|
||||
$$: (selector: string) => void;
|
||||
inspect: (selector: string) => void;
|
||||
selector: (element: Element) => void;
|
||||
generateLocator: (element: Element, language?: Language) => void;
|
||||
resume: () => void;
|
||||
};
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
playwright?: ConsoleAPIInterface;
|
||||
playwright?: any;
|
||||
inspect: (element: Element | undefined) => void;
|
||||
__pw_resume: () => Promise<void>;
|
||||
}
|
||||
@ -89,6 +81,7 @@ class ConsoleAPI {
|
||||
resume: () => this._resume(),
|
||||
...new Locator(injectedScript, ''),
|
||||
};
|
||||
delete window.playwright.filter;
|
||||
}
|
||||
|
||||
private _querySelector(selector: string, strict: boolean): (Element | undefined) {
|
||||
|
||||
@ -66,3 +66,10 @@ it('should support playwright.locator({ has })', async ({ page }) => {
|
||||
expect(await page.evaluate(`playwright.locator('div', { has: playwright.locator('span') }).element.innerHTML`)).toContain('Hello');
|
||||
expect(await page.evaluate(`playwright.locator('div', { has: playwright.locator('text=Hello') }).element.innerHTML`)).toContain('span');
|
||||
});
|
||||
|
||||
it('should support playwright.getBy*', async ({ page }) => {
|
||||
await page.setContent('<span>Hello</span><span title="world">World</span>');
|
||||
expect(await page.evaluate(`playwright.getByText('hello').element.innerHTML`)).toContain('Hello');
|
||||
expect(await page.evaluate(`playwright.getByTitle('world').element.innerHTML`)).toContain('World');
|
||||
expect(await page.evaluate(`playwright.locator('span').filter({ hasText: 'hello' }).element.innerHTML`)).toContain('Hello');
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user