[Bug]: Remote browsers ignore the LaunchOptionsAsync override (x-playwright-launch-options is built from runsettings only)
I maintainer di solito rispondono entro 1 giorno
Una pull request collegata è già stata integrata.
- #3455 di @dgozman — integrata
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 76/100
Direzione di ricerca
Read src/Playwright.NUnit/BrowserService.cs around lines 51–61 and 93, then compare the equivalent MSTest, Xunit, and Xunit.v3 copies. Trace how CreateBrowser receives LaunchOptionsAsync() and runsettings options, and check existing tests for remote connection headers. Done when remote launch options honor the class override with runsettings fallback and a caller-supplied header no longer causes a duplicate-key exception.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Version
1.64.0, and main at d79328b
Steps to reproduce
In BrowserService.cs#L51-L61 (identical in the MSTest, Xunit and Xunit.v3 copies), the connect branch builds the header like this:
headers.Add("x-playwright-launch-options",
JsonSerializer.Serialize(PlaywrightSettingsProvider.LaunchOptions, ...));
CreateBrowser receives the class's launchOptions (from LaunchOptionsAsync()) but doesn't use it here. The legacy PLAYWRIGHT_SERVICE_* path (BrowserService.cs#L93) does the same.
To reproduce:
- Override both
ConnectOptionsAsync()(pointing atnpx playwright run-server) andLaunchOptionsAsync()(e.g.Headless = falseorArgs = ["--user-agent=hello"]). - Run a test that prints
navigator.userAgent.
Expected behavior
The launch options sent to the remote server are the class's LaunchOptionsAsync() result when present, falling back to runsettings.
Actual behavior
- The remote browser is launched with runsettings options only, so the override is silently dropped.
- If the user already put an
x-playwright-launch-optionsheader inConnectOptionsAsync,headers.AddthrowsArgumentException("An item with the same key has already been added").
Additional context
No response
Environment
- Operating System: any
- CPU: any
- Browser: All
- .NET Version (TFM): any
- Other info: found by code review of main @ d79328b
- Lingua principale
- C#
- Stelle
- 3k
- Fork
- 307
- Merge medio
- 1g 14h
- PR unite (30g)
- 32
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/playwright-dotnet
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
microsoft/playwright-dotnet#3432 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
microsoft/playwright-dotnet#3426 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
microsoft/playwright-dotnet#3446 ·
I maintainer di solito rispondono entro 1 giorno
-
[Epic-Ideas-from-Alex] Playwright Test parity for .NET: one roadmap for the test-runner featuresAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
microsoft/playwright-dotnet#3444 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
microsoft/playwright-dotnet#3443 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/playwright-dotnet
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
criticalmanufacturing/cli#909 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
RadicalCSG/com.chisel#312 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
eyalgolan/statecraft-israel#3093 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 63/100
DeveloperAcademy-POSTECH/2026-C6-M10-MUSA#677 ·
I maintainer di solito rispondono entro 1 giorno
-
REQ-13 : une demande En cours perd son responsable par un simple enregistrement, et reste En coursApertaa-corriger bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
christian-raj/S-Aloha#301 ·