Usually, we can just chain two locators with `>>` to implement
`Locator.locator(locator)`. However, this does not play nicely with more
advanced inner locators like `or` and `and`:
```ts
const child = page.locator('input').or(page.locator('button'));
page.locator('parent').locator(child);
```
One would expect the above to locate "input or button" inside a
"parent". However, currently it locates "input inside a parent" or
"button", because it's translated to `parent >> input >>
internal:or="button"`.
To fix this, we have to wrap inner locator into `internal:chain` and
query it separately from the parent.
Fixes #23724.
|
||
|---|---|---|
| .. | ||
| cssParser.ts | ||
| cssTokenizer.ts | ||
| locatorGenerators.ts | ||
| locatorParser.ts | ||
| locatorUtils.ts | ||
| selectorParser.ts | ||
| stringUtils.ts | ||
| traceUtils.ts | ||