You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A pip install selenium-devtools-py user gets no DOM replay, and nothing tells them why.
resolve_script_path() walks up the filesystem looking for packages/script/dist/script.js. That path exists only in a monorepo checkout: the file is gitignored, and the wheel ships packages = ["src/selenium_devtools"], so it is not bundled. From site-packages the lookup returns None, capture logs snapshot capture disabled to stderr, and the preview panel stays empty for the whole run.
Reproduced by hiding the artifact locally, which is the same condition as a published install: commands, console, network, screencast, suites and sources all still work. DOM replay is the only capability that silently disappears.
Options
Ship the bundle in the wheel. A hatch build hook copies script.js into the package. Offline and simple, but vendors a 213KB copy that can drift from the backend's version, the same problem _contract.py has, so it would need the same drift guard.
Have the backend serve it. Add @wdio/devtools-script as a backend dependency and expose it on a route; the adapter fetches the collector from the backend it is already connected to. Version-matched by construction, nothing vendored, and a future Java adapter gets it for free. This is the "shared page script, written once" lever from Epic: Cross-language capture architecture #278.
Fetch from npm at runtime.@wdio/devtools-script is published (1.7.1), so this works, but it adds a network dependency and a second version pin to keep aligned.
Option 2 is the recommendation: it removes per-language duplication instead of multiplying it, and it cannot drift.
Acceptance criteria
A wheel installed from PyPI, outside any checkout, produces DOM mutations and a populated preview panel. The monorepo path keeps working. Whichever delivery mechanism is chosen carries a guard that fails loudly if the collector cannot be obtained, rather than a stderr line nobody sees (see #280).
Size: M. Release blocker: must land before any PyPI publish.
Part of #277
A
pip install selenium-devtools-pyuser gets no DOM replay, and nothing tells them why.resolve_script_path()walks up the filesystem looking forpackages/script/dist/script.js. That path exists only in a monorepo checkout: the file is gitignored, and the wheel shipspackages = ["src/selenium_devtools"], so it is not bundled. From site-packages the lookup returns None, capture logssnapshot capture disabledto stderr, and the preview panel stays empty for the whole run.Reproduced by hiding the artifact locally, which is the same condition as a published install: commands, console, network, screencast, suites and sources all still work. DOM replay is the only capability that silently disappears.
Options
script.jsinto the package. Offline and simple, but vendors a 213KB copy that can drift from the backend's version, the same problem_contract.pyhas, so it would need the same drift guard.@wdio/devtools-scriptas a backend dependency and expose it on a route; the adapter fetches the collector from the backend it is already connected to. Version-matched by construction, nothing vendored, and a future Java adapter gets it for free. This is the "shared page script, written once" lever from Epic: Cross-language capture architecture #278.@wdio/devtools-scriptis published (1.7.1), so this works, but it adds a network dependency and a second version pin to keep aligned.Option 2 is the recommendation: it removes per-language duplication instead of multiplying it, and it cannot drift.
Acceptance criteria
A wheel installed from PyPI, outside any checkout, produces DOM mutations and a populated preview panel. The monorepo path keeps working. Whichever delivery mechanism is chosen carries a guard that fails loudly if the collector cannot be obtained, rather than a stderr line nobody sees (see #280).
Size: M. Release blocker: must land before any PyPI publish.