Skip to main content

Class: LinkedCssLocator

Defined in: packages/core/src/locators/LinkedCssLocator.ts:32

Extends​

Constructors​

Constructor​

new LinkedCssLocator(selector, initializeValue): LinkedCssLocator

Defined in: packages/core/src/locators/LinkedCssLocator.ts:44

Parameters​

selector​

string

initializeValue​

LinkedCssLocatorInitializer & Partial<CssLocatorInitializer>

Returns​

LinkedCssLocator

Overrides​

CssLocator.constructor

Properties​

selector​

readonly selector: string

Defined in: packages/core/src/locators/CssLocator.ts:16

Inherited from​

CssLocator.selector

Accessors​

complexity​

Get Signature​

get complexity(): LocatorComplexity

Defined in: packages/core/src/locators/LinkedCssLocator.ts:51

Returns​

LocatorComplexity

Overrides​

CssLocator.complexity


matchingTargetLocator​

Get Signature​

get matchingTargetLocator(): PartLocator

Defined in: packages/core/src/locators/LinkedCssLocator.ts:59

Returns​

PartLocator


matchingTargetValueExtract​

Get Signature​

get matchingTargetValueExtract(): LinkedCssLocatorAttributeValueExtract

Defined in: packages/core/src/locators/LinkedCssLocator.ts:63

Returns​

LinkedCssLocatorAttributeValueExtract


relative​

Get Signature​

get relative(): LocatorRelativePosition

Defined in: packages/core/src/locators/CssLocator.ts:25

Returns​

LocatorRelativePosition

Inherited from​

CssLocator.relative


valueExtract​

Get Signature​

get valueExtract(): LinkedCssLocatorAttributeValueExtract

Defined in: packages/core/src/locators/LinkedCssLocator.ts:55

Returns​

LinkedCssLocatorAttributeValueExtract

Methods​

and()​

and(...locators): CssLocator

Defined in: packages/core/src/locators/CssLocator.ts:75

Compose additional matchers onto the SAME element, producing one compound CSS selector — e.g. [role="button"] and [aria-label="Open"] together become [role="button"][aria-label="Open"].

This is the ergonomic, footgun-free form of same-element composition: it supersedes locatorUtil.append(byRole('button'), byAriaLabel('Open', 'Same')) — there is no 'Same' argument to remember (the relationship no longer has to be stored on the appended child) and no wrapper call. The result keeps THIS locator's position relative to its parent; the appended matchers contribute only their attribute/selector fragment.

Same-element, pure-CSS only:

  • Put a tag-name matcher (byTagName) FIRST — a CSS type selector is only valid at the start of a compound (input[type="text"], never [type="text"]input).
  • Computed accessible names (aria-labelledby / <label> / text) are not CSS-expressible and stay out of scope (see #923); compose a verbatim aria-label via byAriaLabel instead.
  • Linked locators (byLinkedElement) resolve at runtime and cannot be folded into a static compound; calling .and() on one, or passing one, throws.

Parameters​

locators​

...CssLocator[]

Additional same-element matchers to compound onto this one.

Returns​

CssLocator

Example​

const openButton = byRole('button').and(byAriaLabel('Open'));
const activeTab = byRole('tab').and(byAttribute('aria-selected', 'true'));

Inherited from​

CssLocator.and


chain()​

chain(...locatorsToAppend): PartLocator

Defined in: packages/core/src/locators/CssLocator.ts:29

Parameters​

locatorsToAppend​

...PartLocator[]

Returns​

PartLocator

Inherited from​

CssLocator.chain


clone()​

clone(override?): LinkedCssLocator

Defined in: packages/core/src/locators/LinkedCssLocator.ts:67

Parameters​

override?​

Partial<LinkedCssLocatorInitializer> & Partial<CssLocatorInitializer>

Returns​

LinkedCssLocator

Overrides​

CssLocator.clone