ccoliu opened a new issue, #72433:
URL: https://github.com/apache/airflow/issues/72433
### Under which category would you file this issue?
Airflow Core
### Apache Airflow version
3.3.1
### What happened and how to reproduce it?
## Description
`tests/e2e/specs/xcoms.spec.ts` → `verify filtering by key pattern` and
`verify filtering by Dag display name` fail deterministically on `main` in
Chromium, Firefox, and WebKit. All 4 retry attempts fail with a Playwright
strict-mode violation.
This is blocking unrelated PRs' CI (e.g. #72425), since the failure
reproduces on `main` regardless of what the PR changes.
## Root cause
`airflow-core/src/airflow/ui/tests/e2e/pages/XComsPage.ts`, `applyFilter()`:
```ts
const filterPill = this.page
.locator("div")
.filter({ hasText: `${filterName}:` })
.first();
const filterInput = filterPill.getByRole("textbox");
await expect(filterInput).toBeVisible({ timeout: 30_000 });
```
Playwright's hasText filter matches on an element's full rendered text
content, including all descendants. Since .filter() matches every div
containing the substring "Key:" (or "Dag ID:") anywhere in its subtree,
.first() in DOM order now resolves to a large ancestor wrapper rather than the
small filter-pill div — so getByRole("textbox") inside it matches every textbox
on the page instead of just the filter input.
This appears to have been introduced by
[#71554](https://github.com/apache/airflow/pull/71554) ("UI: Consolidate table
controls into a header row above the table", commit 5999abe9ba), which
restructured the table-controls DOM so more ancestor divs now contain the
filter label text.
### What you think should happen instead?
_No response_
### Operating System
_No response_
### Deployment
None
### Apache Airflow Provider(s)
_No response_
### Versions of Apache Airflow Providers
_No response_
### Official Helm Chart version
Not Applicable
### Kubernetes Version
_No response_
### Helm Chart configuration
_No response_
### Docker Image customizations
_No response_
### Anything else?
_No response_
### Are you willing to submit PR?
- [x] Yes I am willing to submit a PR!
### Code of Conduct
- [x] I agree to follow this project's [Code of
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]