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.
Files changed (20) hide show
  1. {seleniumboot_mcp-0.2.2/src/seleniumboot_mcp.egg-info → seleniumboot_mcp-0.3.0}/PKG-INFO +59 -6
  2. seleniumboot_mcp-0.2.2/PKG-INFO → seleniumboot_mcp-0.3.0/README.md +307 -276
  3. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/pyproject.toml +2 -2
  4. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/tools/_locators.py +0 -2
  5. seleniumboot_mcp-0.3.0/src/selenium_mcp/tools/browser_tools.py +565 -0
  6. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/tools/codegen_tools.py +438 -0
  7. seleniumboot_mcp-0.3.0/src/selenium_mcp/tools/element_tools.py +803 -0
  8. seleniumboot_mcp-0.2.2/README.md → seleniumboot_mcp-0.3.0/src/seleniumboot_mcp.egg-info/PKG-INFO +329 -254
  9. seleniumboot_mcp-0.2.2/src/selenium_mcp/tools/browser_tools.py +0 -246
  10. seleniumboot_mcp-0.2.2/src/selenium_mcp/tools/element_tools.py +0 -356
  11. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/setup.cfg +0 -0
  12. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/__init__.py +0 -0
  13. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/server.py +0 -0
  14. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/tools/__init__.py +0 -0
  15. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/selenium_mcp/tools/assertion_tools.py +0 -0
  16. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/seleniumboot_mcp.egg-info/SOURCES.txt +0 -0
  17. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/seleniumboot_mcp.egg-info/dependency_links.txt +0 -0
  18. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/seleniumboot_mcp.egg-info/entry_points.txt +0 -0
  19. {seleniumboot_mcp-0.2.2 → seleniumboot_mcp-0.3.0}/src/seleniumboot_mcp.egg-info/requires.txt +0 -0
  20. {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.2.2
4
- Summary: A Python MCP server for Selenium WebDriver — browser automation, Java TestNG/JUnit5/Cucumber codegen, and Page Object Model generation
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
- 43 tools. No ChromeDriver setup. Browser auto-starts on first use.
28
+ 74 tools. No ChromeDriver setup. Browser auto-starts on first use.
29
29
 
30
30
  [![PyPI](https://img.shields.io/pypi/v/seleniumboot-mcp)](https://pypi.org/project/seleniumboot-mcp/)
31
31
  [![Python](https://img.shields.io/pypi/pyversions/seleniumboot-mcp)](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 (43 total)
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
- - [ ] CI/CD config generator (GitHub Actions, Jenkins)
270
- - [ ] Self-healing locators
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