Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
141 changes: 130 additions & 11 deletions website_and_docs/content/blog/2025/selenium-community-live-episode4.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,150 @@ description: >
Selenium Community Live - Episode 4
---

The fourth episode of Selenium Community Live happened on March 19th, 2025, with speaker **<a href="https://www.linkedin.com/in/mdmintz/" target="_blank">Michael Mintz</a>**, event hosted by **<a href="https://www.linkedin.com/in/musepallavi/" target="_blank">Pallavi Sharma</a>**
The fourth episode of Selenium Community Live happened on March 19th, 2025, with **Michael Mintz**, who is the creator of SeleniumBase. SeleniumBase is an all in one Browser Automation Framework, built over Selenium WebDriver Python bindings. The framework is well known and used
in the WebDriver Ecosystem community for testing, web scraping, web crawling and stealth purposes.

You can watch the episode on YouTube here- **<a href="https://youtube.com/live/FSH712hhHvo?feature=share" target="_blank">Episode 4 on YouTube</a>**
or
You can watch the episode on LinkedIn here- **<a href="https://www.linkedin.com/events/seleniumcommunitylive-episode47301014781094678530/theater/" target="_blank">Episode 4 on LinkedIn</a>**

**Selenium Community Live - Episode 4**

Michael Mintz is creator of Selenium Base, an all in one Browser Automation Framework, built over Selenium WebDriver Python bindings. The framework is well known and used
in the WebDriver Ecosystem community for testing, web scraping, web crawling and stealth purposes.
You can find out more about Selenium Base here - **<a href="https://seleniumbase.io/" target="_blank">Selenium Base</a>**


**Meet the Speakers:**

1. **<a href="https://www.linkedin.com/in/mdmintz/" target="_blank">Michael Mintz</a>**


# Insights from the Session

In the fourth episode of Selenium Community Live, Michael Mintz, the creator of SeleniumBase, provides an in-depth look at his powerful web automation framework.

## What is SeleniumBase?

SeleniumBase is an open-source framework built on top of Selenium Python bindings, currently boasting over 9,000 GitHub stars.
It's not just a testing framework, rather a complete ecosystem that provides powerful features for various scenarios for browser automation.

Key highlights include:
- **Test recorder** to record and playback tests
- **Advanced dashboards** and reporting capabilities
- **Integration with pytest** for powerful unit testing
- **500+ API methods** for comprehensive web automation
- **Multi-language support** with translations in 10 languages

## Core Features Demonstrated

### Enhanced Pytest Integration

SeleniumBase seamlessly integrates with pytest, providing extensive command-line options. Michael demonstrated how you can:

- Run tests with `--slow` mode to visualize test execution
- Use `--headless` for faster execution without browser UI
- Enable `--demo` mode to highlight actions and show real-time test progress
- Implement `--rs` (reuse session) to run multiple tests in the same browser window

### Advanced Browser Management

The framework provides sophisticated browser control options:

```python
# Multiple browser support with easy switching
pytest my_test.py --edge
pytest my_test.py --firefox
pytest my_test.py --chrome-for-testing

# Mobile device emulation
pytest my_test.py --mobile

# Multi-threading capabilities
pytest my_test.py -n4 # Runs tests in 4 parallel browsers
```

### Stealth Mode and Captcha Bypass

One of SeleniumBase's standout features is its ability to bypass Cloudflare captchas and other anti-bot measures through UC Mode (Ultra-Chrome Mode) and CDP Mode (Chrome DevTools Protocol Mode). This makes it particularly valuable for web scraping applications.

### Comprehensive Reporting and Debugging

SeleniumBase automatically generates detailed reports for failed tests, including:
- Screenshots of the last page visited
- Complete stack traces
- Browser and driver version information
- Detailed logs with timestamps
- Interactive HTML dashboards

The framework also offers powerful debugging capabilities:
- `--pdb` stops at failure points for interactive debugging
- `--trace` enables line-by-line debugging from the start
- Automatic screenshot capture on test failures

## Multiple Syntax Formats

Michael showcased SeleniumBase's flexibility by demonstrating different syntax formats, including:

1. **Traditional pytest format** with BaseCase inheritance
2. **SB pytest fixture** for fixture-based testing
3. **Page Object Model** integration
4. **Python context manager** for pure Python usage (no pytest required)
5. **BDD/Gherkin syntax** with behave runner
6. **Multi-language support** in Chinese, Dutch, French, Italian, Japanese, Korean, Portuguese, Russian, and Spanish

### Example Test Structure

```python
from seleniumbase import BaseCase

class TestExample(BaseCase):
def test_swag_labs(self):
self.open("https://www.saucedemo.com")
self.type("#user-name", "standard_user")
self.type("#password", "secret_sauce")
self.click('input[type="submit"]')
self.assert_element("div.inventory_list")
self.assert_exact_text("Products", "span.title")
```

## Advanced Capabilities

### JavaScript Integration and Tours

SeleniumBase includes a JavaScript injector that allows you to modify any website and create interactive tours. This feature enables:
- Custom website tours using IntroJS
- Dynamic content modification
- Advanced interactions beyond standard Selenium capabilities

### CI/CD Integration

The framework works seamlessly with GitHub Actions, providing XVFB support for headless Linux environments. Michael demonstrated running tests in the cloud with automatic secrets management for secure credential handling.

### Multiple Use Cases

SeleniumBase serves various automation needs:
- **Test Automation**: Comprehensive testing with enhanced reporting
- **Web Scraping**: Captcha bypass and stealth capabilities
- **Website Tours**: Interactive user onboarding
- **Data Collection**: Automated information gathering
- **UI Validation**: Advanced element interaction and verification

## Getting Started

SeleniumBase can be installed via pip and offers immediate value with its extensive command-line options and automatic waiting mechanisms. The framework eliminates many common Selenium pain points like flaky tests through built-in intelligent waits and retry mechanisms.

For those interested in exploring SeleniumBase further, Michael provides several channels for community support:
- GitHub repository with comprehensive documentation
- Selenium Slack workspace (#seleniumbase channel)
- Dedicated Discord server with 700+ members
- YouTube channel with detailed tutorials and examples

## Community Impact

With its extensive feature set and active development, SeleniumBase represents a significant evolution in Python-based web automation. The framework's ability to handle everything from simple test automation to complex web scraping with captcha bypass makes it a versatile tool for developers and QA professionals alike.


---

## Watch the Recording

Couldn’t join us live? Watch the entire episode here -
📹 Recording Link: [Watch the Event Recording on YouTube](https://youtube.com/live/FSH712hhHvo?feature=share)

To know more about Selenium Base, please follow the link
**<a href="https://seleniumbase.io/help_docs/thank_you/" target="_blank">Explore more on Selenium Base</a>**
You can find out more about Selenium Base here - **<a href="https://seleniumbase.io/" target="_blank">Selenium Base</a>**

In case you were wondering what happened to episode 3, it was cancelled but will be scheduled in coming weeks. Thank you!
Stay tuned as we bring the next! **<a href="https://www.youtube.com/@SeleniumHQProject/" target="_blank">Subscribe here to the Selenium HQ Official YouTube Channel.</a>**
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,93 @@ description: >
Selenium Community Live - Episode 6
---

The sixth episode of Selenium Community Live happened on May 21st, 2025, with speaker **<a href="https://www.linkedin.com/in/i-am-luke-hill/" target="_blank">Luke Hill</a>**, event hosted by **<a href="https://www.linkedin.com/in/musepallavi/" target="_blank">Pallavi Sharma</a>**
The sixth episode of Selenium Community Live happened on May 21st, 2025, with **Luke Hill** who is a Lead QA Engineer at Dexters with extensive automation expertise across FinTech, E-Commerce, and Education sectors. A passionate open-source contributor, Luke owns site_prism (a Page Object Gem extending Capybara), serves on the Cucumber technical committee, and is a maintainer of Selenium. Known for his meticulous testing approach and ability to identify challenging edge cases, Luke consistently helps teams deliver more reliable code. His technical expertise in both frontend and backend testing makes him a valuable voice in the QA community.

You can watch the episode on YouTube here- **<a href="https://www.youtube.com/live/48g7sOBHEL0?feature=shared" target="_blank">Episode 6 on YouTube</a>**
or
You can watch the episode on LinkedIn here- **<a href="https://www.linkedin.com/events/seleniumcommunitylive-episode67325906639075581953/theater/" target="_blank">Episode 6 on LinkedIn</a>**

**Selenium Community Live - Episode 6**
**Meet the Speakers:**

Luke Hill is a Lead QA Engineer at Dexters with extensive automation expertise across FinTech, E-Commerce, and Education sectors. A passionate open-source contributor, Luke owns site_prism (a Page Object Gem extending Capybara), serves on the Cucumber technical committee, and is a maintainer of Selenium. Known for his meticulous testing approach and ability to identify challenging edge cases, Luke consistently helps teams deliver more reliable code. His technical expertise in both frontend and backend testing makes him a valuable voice in the QA community.
1. **<a href="https://www.linkedin.com/in/i-am-luke-hill/" target="_blank">Luke Hill</a>**

Luke GitHub Profile is here - **<a href="https://github.com/luke-hill" target="_blank">Luke's GitHub</a>**

# The Maintainer's Perspective: Insights from Selenium Community Live Episode 6

**Meet the Speakers:**
### The Language Debate: Development vs Testing Stacks

1. **<a href="https://www.linkedin.com/in/i-am-luke-hill/" target="_blank">Luke Hill</a>**
One of the most compelling points Luke raised challenges a common assumption in the testing community. The conventional wisdom that testing and development stacks must share the same programming language doesn't hold as much weight in today's containerized world.

"With tools like Docker and Kubernetes, and CI/CD systems like Jenkins and GitHub Actions being standard in most companies, having the testing stack in the same language as development provides minimal benefits," Luke explained. "The real question should be: what language makes you most productive and comfortable as a tester?"

This perspective is particularly relevant for teams considering Ruby for test automation. Ruby's expressiveness and ease of learning make it an excellent choice for testing, regardless of the application's underlying technology stack.

### The Ruby Testing Ecosystem

Luke walked us through the evolution of Ruby's testing ecosystem, highlighting how tools like Selenium, Capybara, Cucumber, and SitePrism work together synergistically:

- **Selenium** provides the browser automation foundation
- **Capybara** adds a testing-focused abstraction layer
- **Cucumber** enables behavior-driven development
- **SitePrism** implements the page object model pattern

This stack's success stems from these tools being designed to work together, creating a developer-friendly testing environment that's both powerful and maintainable.

### The Maintainer's Challenge

Luke provided candid insights into the challenges of maintaining open-source projects:

**Community Expectations**: Balancing feature requests, bug fixes, and community support while maintaining the project's vision and stability.

**Backwards Compatibility**: Making strategic decisions about when to introduce breaking changes, especially for widely-adopted libraries used across various industries and company sizes.

**Volunteer Nature**: Most open-source work is voluntary, requiring careful balance between personal career growth and community contributions.

**Multiple Project Coordination**: Many tools have symbiotic relationships, requiring coordination across different projects and maintainer teams.

## Technical Deep Dive: SitePrism Architecture

Luke provided a fascinating look under the hood of SitePrism, demonstrating how the framework uses Ruby's metaprogramming capabilities to create a domain-specific language (DSL) for page objects.

Key architectural features include:

- **Declarative syntax** for defining page elements
- **Automatic method generation** for element interactions
- **Section support** for reusable page components
- **Scope management** for nested elements
- **Helper method creation** for common testing patterns

This architecture allows developers to write clean, maintainable page objects with minimal boilerplate code, while the framework handles the complex WebDriver interactions behind the scenes.

## Looking to the Future

Luke shared his perspective on emerging trends in test automation:

### Componentization
The rise of tools like Figma and Storybook is changing how applications are built, creating new testing challenges and opportunities around component libraries.

### Accessibility Testing
While still evolving, accessibility testing represents a growing area of focus. Luke advocates for a manual-first approach to learning accessibility concepts before attempting automation.

### Bidirectional Communication
Selenium's bidirectional capabilities promise to enable more sophisticated browser automation, including network interception, request mocking, and dynamic content manipulation.

### AI Integration
Rather than replacing testers, AI will likely handle the laborious aspects of test creation while humans continue to manage architecture, review, and strategic decisions.

## Contributing to Open Source

For developers interested in contributing to projects like Selenium, Luke outlined a clear path:

1. **Learn Git fundamentals** - Understanding version control is essential
2. **Choose a focus area** - Start with one language implementation rather than trying to contribute across all projects
3. **Understand the contribution process** - Each project has specific workflows for accepting contributions
4. **Start small** - Documentation improvements and bug fixes are great entry points

## The Value of Community

Throughout the session, Luke emphasized the symbiotic relationship between personal career growth and open-source contributions. Contributing to projects like Selenium, Cucumber, and SitePrism not only improves the tools that benefit the entire community but also develops skills that advance individual careers.

"View open source as a learn and improve task," Luke advised. "If you improve those libraries, it improves the community, but it will also improve you as an individual."
---

## Watch the Recording

Expand Down
Loading
Loading