Issue 1:
System info

Playwright Version :Version 1.32.3

Operating System: Windows 11

Browser: Firefox only

Other info:

Also seen in our CICD, which is an ubuntu system.

Source code

I provided exact source code that allows reproducing the issue locally.

Link to the GitHub repository with the repro

[https://github.com/your_profile/playwright_issue_title]

or

Config file

import { PlaywrightTestConfig, devices } from '@playwright/test';

const config: PlaywrightTestConfig = {
// Look for test files in the "e2e" directory, relative to this configuration file
testDir: 'E2E',
// Report(s) and reporter options
reporter: [['list'], ['json', { outputFile: 'results.json' }], ['./E2E/utils/logger.ts']], // , ['html', { open: 'never' }]],
// reporter: './E2E/utils/logger.ts',
// output directory for results
outputDir: './../bastionfrontend/test-results',
// Each test is given 4 minutes default timeout
timeout: 240000,
// Number of retries for a failed test
retries: 0,
// Concurrency
workers: 1,
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'], viewport: { width: 1920, height: 920 } }
},
{
name: 'firefox',
use: { ...devices['Desktop Firefox'], viewport: { width: 1920, height: 920 } }
},
{
name: 'webkit',
use: { ...devices['Desktop Safari'], viewport: { width: 1920, height: 920 } }
}
],
// large number of max failures to signify a QA needs to look at the test book
// maxFailures: 30,
// Run whole test suite in parallel
// fullyParallel: true,
// Addition fixtures options
use: {
// Browser launch options
launchOptions: {
slowMo: 0
},
actionTimeout: 30000,
navigationTimeout: 60000,
headless: true,
// Context options
viewport: { width: 1920, height: 920 },
ignoreHTTPSErrors: true,
// Artifact options for screenshot/video
screenshot: 'on',
// video: {
//	mode: 'on',
//	size: { width: 1280, height: 720 }
// },
trace: 'off',
baseURL: process.env.baseURL || process.env.TEST_URL
}
};
export default config;

Test file (self-contained)

async selectInputOption(inputLocator: Locator, selectValue: string | number, autoCloses: boolean = true, clearSelections: boolean = false, allowDNE?: boolean): Promise<void> {
await inputLocator.waitFor();
await inputLocator.isEnabled();
await inputLocator.click();
const popupContent = this.page.locator('.dx-selectbox-popup-wrapper,.dx-header-filter-menu:visible .dx-popup-content');
await popupContent.waitFor();
await this.waitForAnimationEnd(popupContent);
// await popupContent.waitFor();
let theOption: Locator;
if (clearSelections) {
theOption = popupContent.locator('.dx-list-select-all:visible .dx-checkbox');
await theOption.waitFor();
const theClasses = await theOption.getAttribute('class');
if (theClasses?.includes('dx-checkbox-checked')) {
await theOption.click();
} else if (theClasses?.includes('dx-checkbox-indeterminate')) {
await theOption.click();
// await this.page.waitForTimeout(250);
await this.waitForAnimationEnd(popupContent);
await theOption.click();
}
await this.waitForAnimationEnd(popupContent);
// await this.page.waitForTimeout(250);
}
if ([0, 'Select All'].includes(selectValue)) {
theOption = popupContent.locator('.dx-list-select-all:visible');
} else {
if (typeof selectValue === 'number') {
theOption = popupContent.locator('.dx-list-item:visible').nth(selectValue - 1);
} else {
const searchbox = popupContent.locator('input[aria-label="Search"]:visible');
if (await searchbox.count() === 1) {
await searchbox.fill(selectValue);
}
theOption = popupContent.locator('.dx-list-item:visible').getByText(selectValue, { exact: true });
}
}
if (await theOption.count() >= 1 || allowDNE !== true) {
await theOption.waitFor();
await theOption.click();
}
if (autoCloses === false) {
const okayButton = this.page.locator('.dx-toolbar.dx-popup-bottom [aria-label="OK"]');
if (await okayButton.count() === 1) {
await okayButton.click();
} else {
await inputLocator.press('Escape');
}
}
await popupContent.waitFor({ state: 'detached' });
}

Steps

[Run the test]

[...]

Expected

Clicking on an element off of a selector list should not cause the page to do a scroll and throw off the click. This runs fine in Chromium and Firefox.

Actual

When trying to click on a selector element that is the 4th or further along, causes the main page to do a little scroll and loose the open selector. Here is the log output when it tries to click on the element.

=========================== logs =========================== waiting for locator('.dx-selectbox-popup-wrapper,.dx-header-filter-menu:visible .dx-popup-content').locator('.dx-list-item:visible').getByText('High', { exact: true }) locator resolved to <div class="dx-item-content dx-list-item-content">High</div> attempting click action waiting for element to be visible, enabled and stable element is visible, enabled and stable scrolling into view if needed done scrolling performing click action <td role="gridcell" aria-colindex="3" aria-selected=…>417 Wolf Union</td> from <div data-bind="dxControlsDescendantBindings: true" c…>…</div> subtree intercepts pointer events retrying click action, attempt #1 waiting for element to be visible, enabled and stable element is visible, enabled and stable scrolling into view if needed done scrolling <td role="gridcell" aria-colindex="3" aria-selected=…>417 Wolf Union</td> from <div data-bind="dxControlsDescendantBindings: true" c…>…</div> subtree intercepts pointer events retrying click action, attempt #2 waiting 20ms waiting for element to be visible, enabled and stable element is not stable - waiting... element is visible, enabled and stable scrolling into view if needed done scrolling <td role="gridcell" aria-colindex="3" aria-selected=…>417 Wolf Union</td> from <div data-bind="dxControlsDescendantBindings: true" c…>…</div> subtree intercepts pointer events retrying click action, attempt #3 waiting 100ms waiting for element to be visible, enabled and stable element is not visible - waiting... ============================================================

Issue 2:
System info

Playwright Version: [v1.30.0]

Operating System: [macOS 13.2, focal-1.31.0]

Browser: [All, Chromium, Firefox, WebKit]

Other info:

Source code

I provided exact source code that allows reproducing the issue locally.

Link to the GitHub repository with the repro

[https://github.com/your_profile/playwright_issue_title]

or

Config file

// playwright.config.ts
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'], },
},
});

Test file (self-contained)

it('should check the box using setChecked', async ({ page }) => {
await page.setContent(`<input id='checkbox' type='checkbox'></input>`);
await page.getByRole('checkbox').check();
await expect(page.getByRole('checkbox')).toBeChecked();
});

Steps

[Run the test]

[...]

Expected

[Describe expected behavior]

Its happening quite recently, I am getting this very cryptic error

TypeError: Cannot read properties of undefined (reading 'fullName')

It works well on my machine but does not run when in the docker container as outlined by the documentation for visual regression

I have exhaustively searched my codebase and cant identify where fullName is being used

Actual

[Describe actual behavior]