← Back to microsoft/playwright
microsoft / playwright · Issue No. 41216
1.60.0
uv sync
# EITHER
uv run playwright install firefox
# OR
PLAYWRIGHT_SKIP_BROWSER_GC=1 uv run playwright install firefox
# OR
$env:PLAYWRIGHT_SKIP_BROWSER_GC=1 ; uv run playwright install firefox
profile does not exist:# EITHER
rm -r profile
# OR
remove-item -recurse profile
uv run -m playwright_python_navigation_interrupted_by_another_navigation_at_second_launch
The browser will launch and then close again.In both step 5 and step 6, the browser should launch, and after launching is complete, explicitly navigate to about:blank. After all, the main body is:
context = await p.firefox.launch_persistent_context("profile", headless=False)
await context.pages[0].goto("about:blank")
Since we're using a persistent context, the profile should be reused when launching again in step 6.
The output of step 6 should be the same as that of step 5, namely: nothing.
Step 5 runs as intended. However, during step 6, an error is raised with the following message:
Page.goto: Navigation to "about:blank" is interrupted by another navigation to "about:blank"
Traceback (most recent call last):
File "<frozen runpy>", line 203, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\src\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\__main__.py", line 12, in <module>
run(async_main())
~~~^^^^^^^^^^^^^^
File "C:\Users\FlorineDekker\AppData\Local\Python\pythoncore-3.14-64\Lib\asyncio\runners.py", line 204, in run
return runner.run(main)
~~~~~~~~~~^^^^^^
File "C:\Users\FlorineDekker\AppData\Local\Python\pythoncore-3.14-64\Lib\asyncio\runners.py", line 127, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "C:\Users\FlorineDekker\AppData\Local\Python\pythoncore-3.14-64\Lib\asyncio\base_events.py", line 719, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\src\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\__main__.py", line 9, in async_main
await context.pages[0].goto("about:blank")
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\.venv\Lib\site-packages\playwright\async_api\_generated.py", line 9611, in goto
await self._impl_obj.goto(
...<4 lines>...
)
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\.venv\Lib\site-packages\playwright\_impl\_page.py", line 557, in goto
return await self._main_frame.goto(**locals_to_params(locals()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\.venv\Lib\site-packages\playwright\_impl\_frame.py", line 156, in goto
await self._channel.send(
"goto", self._navigation_timeout, locals_to_params(locals())
)
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\.venv\Lib\site-packages\playwright\_impl\_connection.py", line 69, in send
return await self._connection.wrap_api_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
)
^
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\.venv\Lib\site-packages\playwright\_impl\_connection.py", line 559, in wrap_api_call
raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
playwright._impl._errors.Error: Page.goto: Navigation to "about:blank" is interrupted by another navigation to "about:blank"
Call log:
- navigating to "about:blank", waiting until "load"
about:blank directly after launch- Operating System: Windows 11 25H2
- CPU: x64
- Browser: Firefox
- Python Version: 3.14
Relay reads this issue against the repository's contribution signals: the files it is likely to touch, how the maintainers triage work this size, and what the first contribution would exercise.
The full analysis for this issue is still being assembled. Until then, the description above and the thread on GitHub are the most reliable context.