Skip to main content

sel2pw-scan

Offline inventory of a Selenium Java test project, for assessing a migration to Python Playwright.

sel2pw-scan reads your .java files and build files and writes a report: which test framework you use, how many tests, page objects and helper classes you have, and how often your code uses Selenium features that need deliberate work in a migration (fixed sleeps, frames, alerts, JavaScript calls, data providers and so on).

It is a scanner only. It does not convert or change any code, uses no AI model and makes no network calls.

Install

Requires Python 3.10 or newer.

pip install sel2pw-scan

Use

sel2pw-scan path/to/selenium-project --out inventory.md
Option Effect
--out FILE Write the report to a file instead of printing it
--format md Default. Summary report, described below
--format json Full detail for tooling, including locator values and annotation attributes
--version Print the version

python -m sel2pw_scan ... works the same way.

What the report contains

The Markdown report (--format md) lists:

  • the scanned folder path, detected frameworks (TestNG, JUnit 4, JUnit 5, Cucumber), Selenium version (resolved from Maven properties, gradle.properties or Gradle variables) and build files
  • counts of Java files, test classes, page objects, base and utility classes, and test methods, split into UI tests (code that reaches Selenium or Appium) and unit tests (code that does not), plus disabled ones
  • for Cucumber projects: each feature file and scenario with its tags, how many test cases each Scenario Outline expands to, and the number of step definitions
  • how often each of 27 Selenium constructs appears, such as fixed_sleep, frames, alerts, javascript_execution, data_provider and selenium_grid
  • every test method as ClassName#method, with its file, line, assertion count and constructs
  • every class with its role (test, step definitions, runner, page object, base/utility, enum, interface or other), parent class and the project classes it depends on

It does not contain test code, Gherkin step text, locator values, string literals or test data. It does contain names: classes, test methods, features and scenarios. Read it before sharing, and rename anything you consider sensitive.

The JSON report (--format json) adds locator values and annotation attributes, so treat it as internal.

Limits

The scan uses pattern matching, not a full Java parser, so counts can be slightly off for unusual code. It finds JUnit and TestNG tests by annotations such as @Test, and Cucumber scenarios in .feature files written with English Gherkin keywords. Kotlin and Groovy sources are not read.

License

MIT

Metadata

Release files for sel2pw-scan 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sel2pw-scan 0.2.1
File Size Uploaded
sel2pw_scan-0.2.1.tar.gz 17.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sel2pw-scan 0.2.1
File Interpreter ABI Platform
sel2pw_scan-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 31.8 kB

Release files / sel2pw_scan-0.2.1.tar.gz

Download URL sel2pw_scan-0.2.1.tar.gz
Size 17.4 kB
Tags Source
SHA-256 checksum
How to use checksums
53f0224688b5ce88bce7bd831fe8f3741c1d0419aad03e3106f626f26d5ebd74
BLAKE2b-256 checksum
How to use checksums
d5471af3c6bfcabdf53292dadcaa5beb52a5b72897a3e744f17b5a03a4b096dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / sel2pw_scan-0.2.1-py3-none-any.whl

Download URL sel2pw_scan-0.2.1-py3-none-any.whl
Size 14.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ae6f42fc0aa11f5839f18e26d7c303cadc4d5a8bc4a7011c7d299fd30e6d0a1b
BLAKE2b-256 checksum
How to use checksums
3531b587732b98182a0408a9b048fd8957a9899950fd7ebad4bcb1f5d2258318
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page