Cypress Selenium UFT ALM Tosca Playwright - sgml/signature GitHub Wiki
| Tool / Project | Language | Engine | Notes | Docker | Initial Release Date | Latest Release Date | GitHub | Min CPU | Min RAM | Cheatsheets | README |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Splash | Python | QtWebKit | A headless browser service written in Python using Twisted + QtWebKit. Designed for rendering JavaScript pages for scraping. |
Yes (official Docker images: scrapinghub/splash) |
2013 | 2023 (v3.5.0) | scrapinghub/splash | 1 vCPU | 512 MB | Splash API Cheatsheet | Splash README |
| Luakit | Lua | WebKitGTK | Lightweight browser built in Lua using WebKitGTK. Can run headless with xvfb; very resource‑friendly. | Yes (community Docker builds possible) | 2010 | Actively updated | luakit/luakit | 1 vCPU | 256 MB | Luakit Cheatsheet | Luakit README |
| PhantomJS | C++ / JavaScript | WebKit | Once the most popular headless WebKit browser. Deprecated, but still usable in Docker. | Yes (community Docker images) | 2011 | 2018 (final release) | ariya/phantomjs | 1 vCPU | 512 MB | PhantomJS Quick Guide | PhantomJS README |
- https://hackernoon.com/the-world-needs-an-alternative-to-selenium-so-we-built-one-zrk3j3nyr
- https://blog.logrocket.com/cypress-io-the-selenium-killer/
- https://www.deque.com/blog/how-to-test-for-accessibility-with-cypress/
- https://dev.to/bahmutov/unit-testing-vuex-data-store-using-cypress-io-test-runner-3g4n
- https://gorillalogic.com/blog/e2e-testing-with-cypress-automation-ui-rest-api/
- https://damiencosset.com/posts/getting-started-cypress/
- https://www.ackee.cz/blog/en/cypress-testing/
- https://circleci.com/blog/streamlined-web-application-testing-with-the-cypress-circleci-orb/
- https://github.com/cypress-io/cypress/issues/310#issue-191595673
- https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/server-communication__xhr-assertions/cypress/integration/spec.js
- https://docs.cypress.io/guides/guides/network-requests.html#Stub-Responses
- https://docs.cypress.io/faq/questions/using-cypress-faq.html
- https://www.cypress.io/blog/2017/05/05/atom-test-utils/
- https://stackoverflow.com/questions/23102833/how-to-scrape-a-website-which-requires-login-using-python-and-beautifulsoup
- https://www.scrapingdog.com/blog/scrape-data-behind-authentication-with-python/
llm_impact_on_testing_tools:
Tosca:
ai_powered_test_optimization: "Tosca integrates AI-driven assistants to optimize test portfolios, summarize complex test cases, and troubleshoot failures."
enhanced_productivity: "LLMs streamline onboarding and reduce redundant testing tasks, leading to faster release cycles."
UFT:
improved_defect_detection: "LLM-assisted unit testing increases defect detection rates and overall testing efficiency."
multi_language_test_generation: "LLMs generate unit tests across multiple programming languages, improving test coverage."
automated_edge_case_handling: "LLMs enhance test automation by identifying nuanced edge cases that traditional methods might overlook."
ALM:
automated_test_case_generation: "LLMs streamline test scenario creation, reducing manual effort and accelerating development cycles."
security_enhancements: "AI-driven testing improves security audits and debugging capabilities."
ci_cd_integration: "LLMs automate test execution and reporting, improving efficiency across software development workflows."
Selenium:
intelligent_test_script_generation: "LLMs assist in generating Selenium test scripts dynamically, reducing manual coding effort."
adaptive_element_identification: "AI-powered models improve element recognition, reducing flakiness in automated tests."
predictive_test_maintenance: "LLMs analyze test failures and suggest fixes, minimizing maintenance overhead."
"""
# Playwright UI Automation Prerequisites (Python)
This script uses Playwright to:
1. Open a GitHub Markdown file in the browser
2. Click the "Raw" view
3. Extract the Markdown text
4. Paste it into Jira, Slack, and Google Docs
5. Without using any APIs
## Installation Steps
### 1. Install Python 3.9+
Ensure Python is installed:
python3 --version
### 2. Create and activate a virtual environment
python3 -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
### 3. Install Playwright for Python
pip install playwright
### 4. Install Playwright browser binaries
playwright install
This installs:
- Chromium
- Firefox
- WebKit
### 5. Install clipboard helper
pip install pyperclip
### 6. Optional: Run Playwright doctor
playwright doctor
This verifies:
- Browser availability
- Permissions
- Dependencies
After these steps, the script below will run without APIs.
"""
from playwright.sync_api import sync_playwright
import pyperclip
GITHUB_MD_URL = "https://github.com/openai/skills/blob/main/skills/.curated/playwright/SKILL.md"
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
# --- 1. Load GitHub Markdown file ---
page.goto(GITHUB_MD_URL)
page.click("a[title='Raw']") # click the Raw button
# Wait for raw markdown <pre> element
page.wait_for_selector("pre")
# Extract raw markdown text
markdown_text = page.locator("pre").inner_text()
pyperclip.copy(markdown_text)
# --- 2. Paste into Jira ---
page.goto("https://your-jira-url.com/secure/CreateIssue!default.jspa")
page.wait_for_selector("#summary")
page.fill("#summary", "Imported Markdown Documentation")
page.click("#description")
page.keyboard.press("Control+V")
page.click("#create-issue-submit")
# --- 3. Paste into Slack Web ---
page.goto("https://app.slack.com/client/your-workspace-id/your-channel-id")
page.wait_for_selector("div[role='textbox']")
page.click("div[role='textbox']")
page.keyboard.press("Control+V")
page.keyboard.press("Enter")
# --- 4. Paste into Google Docs ---
page.goto("https://docs.google.com/document/create")
page.wait_for_selector("canvas") # Google Docs editor loads as a canvas
page.keyboard.press("Control+V")
browser.close()
- https://github.com/cypress-io/cypress/issues/5577
- https://github.com/cypress-io/cypress/issues/4062
- https://github.com/cypress-io/cypress/issues/1805
- https://github.com/cypress-io/cypress/issues/5577
- https://github.com/cypress-io/cypress/blob/master/packages/driver/test/cypress/integration/commands/navigation_spec.coffee
- https://github.com/qajatin/cypress-loandolphin/blob/fc23d79803a9d8d2e07e58618c0d69bf0ea28ff9/cypress/support/create-post/steps/step1.js
- https://github.com/qajatin/cypress-loandolphin/blob/fc23d79803a9d8d2e07e58618c0d69bf0ea28ff9/cypress/support/dashboard/actions/index.js
- https://docs.cypress.io/api/events/catalog-of-events.html#App-Events
- https://www.jondjones.com/frontend/javascript/testing/useful-code-snippets-to-help-you-write-cypress-tests/
- https://stackoverflow.com/questions/51208998/how-to-login-in-auth0-in-an-e2e-test-with-cypress
- https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/logging-in__jwt
To see all events, open devtools in the Cypress browser window and type the following in the console:
localStorage.debug = 'cypress:*'