What is the project about?
SeleniumBase is a Python framework designed for web automation, testing, scraping, and bypassing CAPTCHAs. It builds upon Selenium/WebDriver APIs and integrates with testing frameworks like pytest, pynose, and behave.
What problem does it solve?
- Simplifies and streamlines web automation tasks.
- Provides a more user-friendly and readable syntax compared to raw Selenium.
- Handles common WebDriver actions automatically (browser launching, closing, screenshot capture on failure).
- Improves test reliability by automatically waiting for elements to load.
- Offers built-in test discovery, execution, and reporting features.
- Helps bypass bot detection mechanisms (using UC Mode and CDP Mode).
- Provides tools for generating tests, managing test cases, and creating data visualizations.
What are the features of the project?
- Simplified API for common web interactions (clicking, typing, navigating, etc.).
- Automatic element waiting and handling.
- Support for multiple browsers (Chrome, Edge, Firefox, Safari).
- Command-line options for customizing test runs.
- Integration with pytest, pynose, and behave testing frameworks.
- Automatic test discovery.
- Generation of test reports (HTML, XML, Dashboard).
- Screenshot capture on test failures.
- Demo Mode for visual debugging.
- Proxy server support.
- User-Agent modification.
- Handling of pop-up alerts.
- Support for iframes.
- Ability to execute custom jQuery scripts.
- Deferred asserts for multiple verifications.
- Retry mechanisms for flaky tests.
- Integration with CI/CD platforms (GitHub Actions, Jenkins, Azure Pipelines, Google Cloud, AWS).
- MasterQA hybrid solution for manual and automated testing.
- Offline test execution.
- Selenium Grid integration for parallel testing.
- Recorder Mode for generating tests from manual actions.
- CasePlans for test case management.
- ChartMaker for building data visualizations.
- UC Mode and CDP Mode for stealth and bypassing bot detection.
What are the technologies used in the project?
- Python
- Selenium WebDriver
- pytest
- pynose (optional)
- behave (optional)
- undetected-chromedriver (for UC Mode)
- JavaScript (for jQuery execution and CDP Mode)
- HTML/CSS (for web interactions)
What are the benefits of the project?
- Faster development of automation scripts.
- More reliable and less flaky tests.
- Easier debugging and maintenance.
- Improved test organization and reporting.
- Scalability through parallel execution and Selenium Grid.
- Enhanced productivity for web automation tasks.
- Ability to bypass bot detection.
What are the use cases of the project?
- Web application testing (UI testing, end-to-end testing).
- Web scraping and data extraction.
- Automating repetitive web tasks.
- Bypassing CAPTCHAs and bot detection.
- Creating website tours and walkthroughs.
- Monitoring website performance and availability.
- Generating data visualizations from web data.
- Manual testing assistance with MasterQA.
