cherry-pick(#12899): chore: make count() work with _vue selectors
This commit is contained in:
parent
39abfd6481
commit
ef40d21945
|
|
@ -92,7 +92,7 @@ export class Selectors {
|
||||||
}
|
}
|
||||||
|
|
||||||
async _queryCount(frame: frames.Frame, info: SelectorInfo, scope?: dom.ElementHandle): Promise<number> {
|
async _queryCount(frame: frames.Frame, info: SelectorInfo, scope?: dom.ElementHandle): Promise<number> {
|
||||||
const context = await frame._utilityContext();
|
const context = await frame._context(info.world);
|
||||||
const injectedScript = await context.injectedScript();
|
const injectedScript = await context.injectedScript();
|
||||||
return await injectedScript.evaluate((injected, { parsed, scope }) => {
|
return await injectedScript.evaluate((injected, { parsed, scope }) => {
|
||||||
return injected.querySelectorAll(parsed, scope || document).length;
|
return injected.querySelectorAll(parsed, scope || document).length;
|
||||||
|
|
|
||||||
|
|
@ -30,10 +30,14 @@ for (const [name, url] of Object.entries(vues)) {
|
||||||
|
|
||||||
it('should work with single-root elements #smoke', async ({ page }) => {
|
it('should work with single-root elements #smoke', async ({ page }) => {
|
||||||
expect(await page.$$eval(`_vue=book-list`, els => els.length)).toBe(1);
|
expect(await page.$$eval(`_vue=book-list`, els => els.length)).toBe(1);
|
||||||
|
expect(await page.locator(`_vue=book-list`).count()).toBe(1);
|
||||||
|
await expect(page.locator(`_vue=book-list`)).toHaveCount(1);
|
||||||
expect(await page.$$eval(`_vue=book-item`, els => els.length)).toBe(3);
|
expect(await page.$$eval(`_vue=book-item`, els => els.length)).toBe(3);
|
||||||
|
expect(await page.locator(`_vue=book-item`).count()).toBe(3);
|
||||||
|
await expect(page.locator(`_vue=book-item`)).toHaveCount(3);
|
||||||
expect(await page.$$eval(`_vue=book-list >> _vue=book-item`, els => els.length)).toBe(3);
|
expect(await page.$$eval(`_vue=book-list >> _vue=book-item`, els => els.length)).toBe(3);
|
||||||
|
expect(await page.locator(`_vue=book-list >> _vue=book-item`).count()).toBe(3);
|
||||||
expect(await page.$$eval(`_vue=book-item >> _vue=book-list`, els => els.length)).toBe(0);
|
expect(await page.$$eval(`_vue=book-item >> _vue=book-list`, els => els.length)).toBe(0);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should work with multi-root elements (fragments)', async ({ page }) => {
|
it('should work with multi-root elements (fragments)', async ({ page }) => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue