test: remove tests for SelectorEngine.create (#4580)
We are not going to keep this functionality on arbitrary engines.
This commit is contained in:
parent
7e30669eb0
commit
3121de403b
|
|
@ -241,10 +241,6 @@ export class ElementHandle<T extends Node = Node> extends JSHandle<T> {
|
||||||
return ElementHandle.fromNullable(result.element) as ElementHandle<Element> | null;
|
return ElementHandle.fromNullable(result.element) as ElementHandle<Element> | null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async _createSelectorForTest(name: string): Promise<string | undefined> {
|
|
||||||
return (await this._elementChannel.createSelectorForTest({ name })).value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function convertSelectOptionValues(values: string | ElementHandle | SelectOption | string[] | ElementHandle[] | SelectOption[] | null): { elements?: channels.ElementHandleChannel[], options?: SelectOption[] } {
|
export function convertSelectOptionValues(values: string | ElementHandle | SelectOption | string[] | ElementHandle[] | SelectOption[] | null): { elements?: channels.ElementHandleChannel[], options?: SelectOption[] } {
|
||||||
|
|
|
||||||
|
|
@ -183,8 +183,4 @@ export class ElementHandleDispatcher extends JSHandleDispatcher implements chann
|
||||||
async waitForSelector(params: channels.ElementHandleWaitForSelectorParams): Promise<channels.ElementHandleWaitForSelectorResult> {
|
async waitForSelector(params: channels.ElementHandleWaitForSelectorParams): Promise<channels.ElementHandleWaitForSelectorResult> {
|
||||||
return { element: ElementHandleDispatcher.createNullable(this._scope, await this._elementHandle.waitForSelector(params.selector, params)) };
|
return { element: ElementHandleDispatcher.createNullable(this._scope, await this._elementHandle.waitForSelector(params.selector, params)) };
|
||||||
}
|
}
|
||||||
|
|
||||||
async createSelectorForTest(params: channels.ElementHandleCreateSelectorForTestParams): Promise<channels.ElementHandleCreateSelectorForTestResult> {
|
|
||||||
return { value: await this._elementHandle._page.selectors._createSelector(params.name, this._elementHandle as ElementHandle<Element>) };
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1756,7 +1756,6 @@ export interface ElementHandleChannel extends JSHandleChannel {
|
||||||
uncheck(params: ElementHandleUncheckParams, metadata?: Metadata): Promise<ElementHandleUncheckResult>;
|
uncheck(params: ElementHandleUncheckParams, metadata?: Metadata): Promise<ElementHandleUncheckResult>;
|
||||||
waitForElementState(params: ElementHandleWaitForElementStateParams, metadata?: Metadata): Promise<ElementHandleWaitForElementStateResult>;
|
waitForElementState(params: ElementHandleWaitForElementStateParams, metadata?: Metadata): Promise<ElementHandleWaitForElementStateResult>;
|
||||||
waitForSelector(params: ElementHandleWaitForSelectorParams, metadata?: Metadata): Promise<ElementHandleWaitForSelectorResult>;
|
waitForSelector(params: ElementHandleWaitForSelectorParams, metadata?: Metadata): Promise<ElementHandleWaitForSelectorResult>;
|
||||||
createSelectorForTest(params: ElementHandleCreateSelectorForTestParams, metadata?: Metadata): Promise<ElementHandleCreateSelectorForTestResult>;
|
|
||||||
}
|
}
|
||||||
export type ElementHandleEvalOnSelectorParams = {
|
export type ElementHandleEvalOnSelectorParams = {
|
||||||
selector: string,
|
selector: string,
|
||||||
|
|
@ -2089,15 +2088,6 @@ export type ElementHandleWaitForSelectorOptions = {
|
||||||
export type ElementHandleWaitForSelectorResult = {
|
export type ElementHandleWaitForSelectorResult = {
|
||||||
element?: ElementHandleChannel,
|
element?: ElementHandleChannel,
|
||||||
};
|
};
|
||||||
export type ElementHandleCreateSelectorForTestParams = {
|
|
||||||
name: string,
|
|
||||||
};
|
|
||||||
export type ElementHandleCreateSelectorForTestOptions = {
|
|
||||||
|
|
||||||
};
|
|
||||||
export type ElementHandleCreateSelectorForTestResult = {
|
|
||||||
value?: string,
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------- Request -----------
|
// ----------- Request -----------
|
||||||
export type RequestInitializer = {
|
export type RequestInitializer = {
|
||||||
|
|
|
||||||
|
|
@ -1762,12 +1762,6 @@ ElementHandle:
|
||||||
returns:
|
returns:
|
||||||
element: ElementHandle?
|
element: ElementHandle?
|
||||||
|
|
||||||
createSelectorForTest:
|
|
||||||
parameters:
|
|
||||||
name: string
|
|
||||||
returns:
|
|
||||||
value: string?
|
|
||||||
|
|
||||||
|
|
||||||
Request:
|
Request:
|
||||||
type: interface
|
type: interface
|
||||||
|
|
|
||||||
|
|
@ -837,9 +837,6 @@ export function createScheme(tChannel: (name: string) => Validator): Scheme {
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
state: tOptional(tEnum(['attached', 'detached', 'visible', 'hidden'])),
|
state: tOptional(tEnum(['attached', 'detached', 'visible', 'hidden'])),
|
||||||
});
|
});
|
||||||
scheme.ElementHandleCreateSelectorForTestParams = tObject({
|
|
||||||
name: tString,
|
|
||||||
});
|
|
||||||
scheme.RequestResponseParams = tOptional(tObject({}));
|
scheme.RequestResponseParams = tOptional(tObject({}));
|
||||||
scheme.RouteAbortParams = tObject({
|
scheme.RouteAbortParams = tObject({
|
||||||
errorCode: tOptional(tString),
|
errorCode: tOptional(tString),
|
||||||
|
|
|
||||||
|
|
@ -114,14 +114,6 @@ export class Selectors {
|
||||||
return adopted;
|
return adopted;
|
||||||
}
|
}
|
||||||
|
|
||||||
async _createSelector(name: string, handle: dom.ElementHandle<Element>): Promise<string | undefined> {
|
|
||||||
const mainContext = await handle._page.mainFrame()._mainContext();
|
|
||||||
const injectedScript = await mainContext.injectedScript();
|
|
||||||
return injectedScript.evaluate((injected, { target, name }) => {
|
|
||||||
return injected.engines.get(name)!.create(document.documentElement, target);
|
|
||||||
}, { target: handle, name });
|
|
||||||
}
|
|
||||||
|
|
||||||
_parseSelector(selector: string): SelectorInfo {
|
_parseSelector(selector: string): SelectorInfo {
|
||||||
const parsed = parseSelector(selector);
|
const parsed = parseSelector(selector);
|
||||||
for (const {name} of parsed.parts) {
|
for (const {name} of parsed.parts) {
|
||||||
|
|
|
||||||
|
|
@ -41,12 +41,10 @@ it('should work', async ({playwright, browser}) => {
|
||||||
const page = await context.newPage();
|
const page = await context.newPage();
|
||||||
await page.setContent('<div><span></span></div><div></div>');
|
await page.setContent('<div><span></span></div><div></div>');
|
||||||
|
|
||||||
expect(await (await page.$('div') as any)._createSelectorForTest('tag')).toBe('DIV');
|
|
||||||
expect(await page.$eval('tag=DIV', e => e.nodeName)).toBe('DIV');
|
expect(await page.$eval('tag=DIV', e => e.nodeName)).toBe('DIV');
|
||||||
expect(await page.$eval('tag=SPAN', e => e.nodeName)).toBe('SPAN');
|
expect(await page.$eval('tag=SPAN', e => e.nodeName)).toBe('SPAN');
|
||||||
expect(await page.$$eval('tag=DIV', es => es.length)).toBe(2);
|
expect(await page.$$eval('tag=DIV', es => es.length)).toBe(2);
|
||||||
|
|
||||||
expect(await (await page.$('div') as any)._createSelectorForTest('tag2')).toBe('DIV');
|
|
||||||
expect(await page.$eval('tag2=DIV', e => e.nodeName)).toBe('DIV');
|
expect(await page.$eval('tag2=DIV', e => e.nodeName)).toBe('DIV');
|
||||||
expect(await page.$eval('tag2=SPAN', e => e.nodeName)).toBe('SPAN');
|
expect(await page.$eval('tag2=SPAN', e => e.nodeName)).toBe('SPAN');
|
||||||
expect(await page.$$eval('tag2=DIV', es => es.length)).toBe(2);
|
expect(await page.$$eval('tag2=DIV', es => es.length)).toBe(2);
|
||||||
|
|
|
||||||
|
|
@ -106,22 +106,6 @@ it('query', async ({page, isWebKit}) => {
|
||||||
expect((await page.$$(`text="lo wo"`)).length).toBe(0);
|
expect((await page.$$(`text="lo wo"`)).length).toBe(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('create', async ({page}) => {
|
|
||||||
await page.setContent(`<div>yo</div><div>"ya</div><div>ye ye</div>`);
|
|
||||||
expect(await (await page.$('div') as any)._createSelectorForTest('text')).toBe('yo');
|
|
||||||
expect(await (await page.$('div:nth-child(2)') as any)._createSelectorForTest('text')).toBe('"\\"ya"');
|
|
||||||
expect(await (await page.$('div:nth-child(3)') as any)._createSelectorForTest('text')).toBe('"ye ye"');
|
|
||||||
|
|
||||||
await page.setContent(`<div>yo</div><div>yo<div>ya</div>hey</div>`);
|
|
||||||
expect(await (await page.$('div:nth-child(2)') as any)._createSelectorForTest('text')).toBe('hey');
|
|
||||||
|
|
||||||
await page.setContent(`<div> yo <div></div>ya</div>`);
|
|
||||||
expect(await (await page.$('div') as any)._createSelectorForTest('text')).toBe('yo');
|
|
||||||
|
|
||||||
await page.setContent(`<div> "yo <div></div>ya</div>`);
|
|
||||||
expect(await (await page.$('div') as any)._createSelectorForTest('text')).toBe('" \\"yo "');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should be case sensitive if quotes are specified', async ({page}) => {
|
it('should be case sensitive if quotes are specified', async ({page}) => {
|
||||||
await page.setContent(`<div>yo</div><div>ya</div><div>\nye </div>`);
|
await page.setContent(`<div>yo</div><div>ya</div><div>\nye </div>`);
|
||||||
expect(await page.$eval(`text=yA`, e => e.outerHTML)).toBe('<div>ya</div>');
|
expect(await page.$eval(`text=yA`, e => e.outerHTML)).toBe('<div>ya</div>');
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue