seleniumboot-mcp 0.2.2__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {seleniumboot_mcp-0.2.2/src/seleniumboot_mcp.egg-info → seleniumboot_mcp-0.3.0}/PKG-INFO +59 -6
- seleniumboot_mcp-0.2.2/PKG-INFO → seleniumboot_mcp-0.3.0/README.md +307 -276
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/pyproject.toml +2 -2
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/tools/_locators.py +0 -2
- seleniumboot_mcp-0.3.0/src/selenium_mcp/tools/browser_tools.py +565 -0
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/tools/codegen_tools.py +438 -0
- seleniumboot_mcp-0.3.0/src/selenium_mcp/tools/element_tools.py +803 -0
- seleniumboot_mcp-0.2.2/README.md → seleniumboot_mcp-0.3.0/src/seleniumboot_mcp.egg-info/PKG-INFO +329 -254
- seleniumboot_mcp-0.2.2/src/selenium_mcp/tools/browser_tools.py +0 -246
- seleniumboot_mcp-0.2.2/src/selenium_mcp/tools/element_tools.py +0 -356
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/setup.cfg +0 -0
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/__init__.py +0 -0
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/server.py +0 -0
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/tools/__init__.py +0 -0
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/tools/assertion_tools.py +0 -0
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/seleniumboot_mcp.egg-info/SOURCES.txt +0 -0
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/seleniumboot_mcp.egg-info/dependency_links.txt +0 -0
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/seleniumboot_mcp.egg-info/entry_points.txt +0 -0
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/seleniumboot_mcp.egg-info/requires.txt +0 -0
- {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/seleniumboot_mcp.egg-info/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: seleniumboot-mcp
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: A Python MCP server for Selenium WebDriver — browser automation,
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: A Python MCP server for Selenium WebDriver — 74 tools for browser automation, alerts, frames, shadow DOM, cookies, mobile emulation, self-healing locators, and codegen for Java/C#/Python/Playwright
|
|
5
5
|
Author-email: Raza Tech <razatechnologyservices@gmail.com>
|
|
6
6
|
License: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/seleniumboot/selenium-mcp
|
|
@@ -25,7 +25,7 @@ Requires-Dist: selenium>=4.6.0
|
|
|
25
25
|
A Python **Model Context Protocol (MCP)** server for Selenium WebDriver automation.
|
|
26
26
|
Let Claude or GitHub Copilot control a real browser — navigate pages, interact with elements,
|
|
27
27
|
run assertions, and generate ready-to-run **Java TestNG / JUnit 5 / Cucumber / pytest** test code from recorded sessions.
|
|
28
|
-
|
|
28
|
+
74 tools. No ChromeDriver setup. Browser auto-starts on first use.
|
|
29
29
|
|
|
30
30
|
[](https://pypi.org/project/seleniumboot-mcp/)
|
|
31
31
|
[](https://pypi.org/project/seleniumboot-mcp/)
|
|
@@ -107,7 +107,7 @@ Claude controls the real browser, records every action, and on request generates
|
|
|
107
107
|
|
|
108
108
|
---
|
|
109
109
|
|
|
110
|
-
## Tools (
|
|
110
|
+
## Tools (74 total)
|
|
111
111
|
|
|
112
112
|
### Browser
|
|
113
113
|
| Tool | Description |
|
|
@@ -122,7 +122,19 @@ Claude controls the real browser, records every action, and on request generates
|
|
|
122
122
|
| `go_back` / `go_forward` | Browser history |
|
|
123
123
|
| `refresh` | Reload page |
|
|
124
124
|
| `switch_to_window` | Switch between tabs by index |
|
|
125
|
+
| `open_new_tab` | Open a new browser tab, optionally at a URL |
|
|
126
|
+
| `close_current_tab` | Close the active tab and switch to the previous |
|
|
127
|
+
| `list_windows` | List all open tabs with index, title, and URL |
|
|
125
128
|
| `close_browser` | Quit the browser |
|
|
129
|
+
| `scroll_to_top` | Scroll page to the top |
|
|
130
|
+
| `scroll_to_bottom` | Scroll page to the bottom |
|
|
131
|
+
| `scroll_by` | Scroll page by x/y pixels |
|
|
132
|
+
| `emulate_device` | Emulate a mobile device (iPhone, iPad, Pixel, Galaxy) via CDP |
|
|
133
|
+
| `get_console_logs` | Get browser console errors/warnings/info (Chrome) |
|
|
134
|
+
| `get_cookies` / `set_cookie` | Read or write a cookie |
|
|
135
|
+
| `delete_cookie` / `delete_all_cookies` | Remove cookies |
|
|
136
|
+
| `get_local_storage` / `set_local_storage` | Read or write localStorage |
|
|
137
|
+
| `get_session_storage` / `set_session_storage` | Read or write sessionStorage |
|
|
126
138
|
|
|
127
139
|
### Elements
|
|
128
140
|
| Tool | Description |
|
|
@@ -143,6 +155,17 @@ Claude controls the real browser, records every action, and on request generates
|
|
|
143
155
|
| `wait_for_element` | Wait: visible / clickable / present / invisible |
|
|
144
156
|
| `scroll_to_element` | Scroll element into view |
|
|
145
157
|
| `clear_field` | Clear input field |
|
|
158
|
+
| `send_keys` | Send special keys (Tab, Enter, Escape, Ctrl+A, F5, …) |
|
|
159
|
+
| `upload_file` | Upload a file via `<input type="file">` |
|
|
160
|
+
| `accept_alert` / `dismiss_alert` | Handle JS alert/confirm dialogs |
|
|
161
|
+
| `get_alert_text` | Read the message from an alert |
|
|
162
|
+
| `type_in_alert` | Type into a JS prompt and accept |
|
|
163
|
+
| `switch_to_frame` | Focus into an iframe by index, name, or selector |
|
|
164
|
+
| `switch_to_default_content` | Return to the main page from a frame |
|
|
165
|
+
| `find_shadow_element` | Find element inside a shadow DOM |
|
|
166
|
+
| `get_table_data` | Extract an HTML table as a formatted text grid |
|
|
167
|
+
| `get_healed_locators` | View all self-healed selector mappings for the session |
|
|
168
|
+
| `clear_healed_locators` | Reset the self-healing cache |
|
|
146
169
|
|
|
147
170
|
### Assertions
|
|
148
171
|
| Tool | Description |
|
|
@@ -164,6 +187,9 @@ Claude controls the real browser, records every action, and on request generates
|
|
|
164
187
|
| `generate_java_page_object` | Java Page Object class + test class from session |
|
|
165
188
|
| `generate_gherkin` | Gherkin `.feature` file + Java step definitions from session |
|
|
166
189
|
| `generate_python_test` | pytest class from session |
|
|
190
|
+
| `generate_csharp_nunit` | C# NUnit + Selenium test class from session |
|
|
191
|
+
| `generate_github_actions` | GitHub Actions CI workflow YAML (Maven / Gradle / pytest) |
|
|
192
|
+
| `generate_playwright_hints` | Equivalent Playwright TypeScript code from session |
|
|
167
193
|
| `get_session_log` | View recorded actions |
|
|
168
194
|
| `clear_session_log` | Reset the session recording |
|
|
169
195
|
|
|
@@ -250,6 +276,22 @@ public class LoginSteps {
|
|
|
250
276
|
|
|
251
277
|
---
|
|
252
278
|
|
|
279
|
+
## Self-Healing Locators
|
|
280
|
+
|
|
281
|
+
When a selector fails to find an element, seleniumboot-mcp automatically tries alternative strategies before giving up:
|
|
282
|
+
|
|
283
|
+
| Primary selector | Alternatives tried |
|
|
284
|
+
|---|---|
|
|
285
|
+
| `#my-id` (CSS) | `by=id "my-id"`, `[id='my-id']` |
|
|
286
|
+
| `.my-class` (CSS) | `by=class "my-class"`, `[class*='my-class']` |
|
|
287
|
+
| `input[type='email']` (CSS) | `//input[@type='email']` (XPath) |
|
|
288
|
+
| `//button[@id='ok']` (XPath) | `button[id='ok']` (CSS), `by=id "ok"` |
|
|
289
|
+
| `"A, B"` comma list | tries A first, then B |
|
|
290
|
+
|
|
291
|
+
Successful fallbacks are **cached** so the healed selector is reused automatically. Use `get_healed_locators` to inspect the cache and update your test code, and `clear_healed_locators` to start fresh.
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
253
295
|
## Links
|
|
254
296
|
|
|
255
297
|
- **GitHub:** [github.com/seleniumboot/selenium-mcp](https://github.com/seleniumboot/selenium-mcp)
|
|
@@ -266,8 +308,19 @@ public class LoginSteps {
|
|
|
266
308
|
- [x] Auto-start browser on first use (no explicit `start_browser` needed)
|
|
267
309
|
- [x] Page Object Model generation (`generate_java_page_object`)
|
|
268
310
|
- [x] Cucumber / Gherkin step generation (`generate_gherkin`)
|
|
269
|
-
- [
|
|
270
|
-
- [
|
|
311
|
+
- [x] Self-healing locators — automatic fallback when a selector breaks
|
|
312
|
+
- [x] Alert/dialog handling, iframe switching, shadow DOM, table extraction
|
|
313
|
+
- [x] Cookie, localStorage, sessionStorage management
|
|
314
|
+
- [x] Mobile device emulation via Chrome DevTools Protocol
|
|
315
|
+
- [x] Special key sending (Tab, Enter, F-keys, Ctrl+A, …)
|
|
316
|
+
- [x] File upload via `<input type="file">`
|
|
317
|
+
- [x] Browser console log capture
|
|
318
|
+
- [x] Multi-tab management (open, close, list)
|
|
319
|
+
- [x] Page scroll (top, bottom, by pixels)
|
|
320
|
+
- [x] C# NUnit + Selenium codegen
|
|
321
|
+
- [x] GitHub Actions CI workflow generator (Maven / Gradle / pytest)
|
|
322
|
+
- [x] Playwright TypeScript migration hints
|
|
323
|
+
- [ ] CI/CD config for Jenkins / GitLab CI
|
|
271
324
|
|
|
272
325
|
---
|
|
273
326
|
|