microsoft/playwright · error · Error
Malformed attribute selector: ${selector}
Error message
Malformed attribute selector: ${selector} What it means
Error "Malformed attribute selector: ${selector}" thrown in microsoft/playwright.
Source
Thrown at packages/injected/src/injectedScript.ts:505
}
private _createInternalLabelEngine(): SelectorEngine {
return {
queryAll: (root: SelectorRoot, selector: string): Element[] => {
const { matcher } = createTextMatcher(selector, true);
const allElements = this._evaluator._queryCSS({ scope: root as Document | Element, pierceShadow: true }, '*');
return allElements.filter(element => {
return getElementLabels(this._evaluator._cacheText, element).some(label => matcher(label));
});
}
};
}
private _createNamedAttributeEngine(): SelectorEngine {
const queryAll = (root: SelectorRoot, selector: string): Element[] => {
const parsed = parseAttributeSelector(selector, true);
if (parsed.name || parsed.attributes.length !== 1)
throw new Error('Malformed attribute selector: ' + selector);
const { name } = parsed.attributes[0];
const matcher = createAttributeMatcher(parsed.attributes[0]);
const elements = this._evaluator._queryCSS({ scope: root as Document | Element, pierceShadow: true }, `[${name}]`);
return elements.filter(e => matcher(e.getAttribute(name)!));
};
return { queryAll };
}
private _createTestIdEngine(): SelectorEngine {
const queryAll = (root: SelectorRoot, selector: string): Element[] => {
const parsed = parseAttributeSelector(selector, true);
if (parsed.name || parsed.attributes.length !== 1)
throw new Error('Malformed test id selector: ' + selector);
const names = splitTestIdAttributeNames(parsed.attributes[0].name);
const matcher = createAttributeMatcher(parsed.attributes[0]);
const cssQuery = names.map(n => `[${n}]`).join(',');
const elements = this._evaluator._queryCSS({ scope: root as Document | Element, pierceShadow: true }, cssQuery);
return elements.filter(e => names.some(n => {View on GitHub (pinned to c8fc3bf8d3)
When it happens
Trigger: Thrown at packages/injected/src/injectedScript.ts:505 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
AI-assisted analysis of microsoft/playwright@c8fc3bf8d3 (2026-08-12).
Data as JSON: /api/errors/b10ba4e8def8ef8f.
Report an issue: GitHub.