Skip to content

Commit 2bccc70

Browse files
authored
Merge branch 'trunk' into dependabot/github_actions/actions/setup-python-6
2 parents 7eae07c + 5aae972 commit 2bccc70

File tree

3 files changed

+337
-27
lines changed

3 files changed

+337
-27
lines changed

website_and_docs/content/blog/2025/selenium-community-live-episode4.md

Lines changed: 130 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,150 @@ description: >
1010
Selenium Community Live - Episode 4
1111
---
1212

13-
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>**
13+
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
14+
in the WebDriver Ecosystem community for testing, web scraping, web crawling and stealth purposes.
1415

1516
You can watch the episode on YouTube here- **<a href="https://youtube.com/live/FSH712hhHvo?feature=share" target="_blank">Episode 4 on YouTube</a>**
16-
or
17-
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>**
18-
19-
**Selenium Community Live - Episode 4**
20-
21-
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
22-
in the WebDriver Ecosystem community for testing, web scraping, web crawling and stealth purposes.
23-
You can find out more about Selenium Base here - **<a href="https://seleniumbase.io/" target="_blank">Selenium Base</a>**
2417

2518

2619
**Meet the Speakers:**
2720

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

3023

24+
# Insights from the Session
25+
26+
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.
27+
28+
## What is SeleniumBase?
29+
30+
SeleniumBase is an open-source framework built on top of Selenium Python bindings, currently boasting over 9,000 GitHub stars.
31+
It's not just a testing framework, rather a complete ecosystem that provides powerful features for various scenarios for browser automation.
32+
33+
Key highlights include:
34+
- **Test recorder** to record and playback tests
35+
- **Advanced dashboards** and reporting capabilities
36+
- **Integration with pytest** for powerful unit testing
37+
- **500+ API methods** for comprehensive web automation
38+
- **Multi-language support** with translations in 10 languages
39+
40+
## Core Features Demonstrated
41+
42+
### Enhanced Pytest Integration
43+
44+
SeleniumBase seamlessly integrates with pytest, providing extensive command-line options. Michael demonstrated how you can:
45+
46+
- Run tests with `--slow` mode to visualize test execution
47+
- Use `--headless` for faster execution without browser UI
48+
- Enable `--demo` mode to highlight actions and show real-time test progress
49+
- Implement `--rs` (reuse session) to run multiple tests in the same browser window
50+
51+
### Advanced Browser Management
52+
53+
The framework provides sophisticated browser control options:
54+
55+
```python
56+
# Multiple browser support with easy switching
57+
pytest my_test.py --edge
58+
pytest my_test.py --firefox
59+
pytest my_test.py --chrome-for-testing
60+
61+
# Mobile device emulation
62+
pytest my_test.py --mobile
63+
64+
# Multi-threading capabilities
65+
pytest my_test.py -n4 # Runs tests in 4 parallel browsers
66+
```
67+
68+
### Stealth Mode and Captcha Bypass
69+
70+
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.
71+
72+
### Comprehensive Reporting and Debugging
73+
74+
SeleniumBase automatically generates detailed reports for failed tests, including:
75+
- Screenshots of the last page visited
76+
- Complete stack traces
77+
- Browser and driver version information
78+
- Detailed logs with timestamps
79+
- Interactive HTML dashboards
80+
81+
The framework also offers powerful debugging capabilities:
82+
- `--pdb` stops at failure points for interactive debugging
83+
- `--trace` enables line-by-line debugging from the start
84+
- Automatic screenshot capture on test failures
85+
86+
## Multiple Syntax Formats
87+
88+
Michael showcased SeleniumBase's flexibility by demonstrating different syntax formats, including:
89+
90+
1. **Traditional pytest format** with BaseCase inheritance
91+
2. **SB pytest fixture** for fixture-based testing
92+
3. **Page Object Model** integration
93+
4. **Python context manager** for pure Python usage (no pytest required)
94+
5. **BDD/Gherkin syntax** with behave runner
95+
6. **Multi-language support** in Chinese, Dutch, French, Italian, Japanese, Korean, Portuguese, Russian, and Spanish
96+
97+
### Example Test Structure
98+
99+
```python
100+
from seleniumbase import BaseCase
101+
102+
class TestExample(BaseCase):
103+
def test_swag_labs(self):
104+
self.open("https://www.saucedemo.com")
105+
self.type("#user-name", "standard_user")
106+
self.type("#password", "secret_sauce")
107+
self.click('input[type="submit"]')
108+
self.assert_element("div.inventory_list")
109+
self.assert_exact_text("Products", "span.title")
110+
```
111+
112+
## Advanced Capabilities
113+
114+
### JavaScript Integration and Tours
115+
116+
SeleniumBase includes a JavaScript injector that allows you to modify any website and create interactive tours. This feature enables:
117+
- Custom website tours using IntroJS
118+
- Dynamic content modification
119+
- Advanced interactions beyond standard Selenium capabilities
120+
121+
### CI/CD Integration
122+
123+
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.
124+
125+
### Multiple Use Cases
126+
127+
SeleniumBase serves various automation needs:
128+
- **Test Automation**: Comprehensive testing with enhanced reporting
129+
- **Web Scraping**: Captcha bypass and stealth capabilities
130+
- **Website Tours**: Interactive user onboarding
131+
- **Data Collection**: Automated information gathering
132+
- **UI Validation**: Advanced element interaction and verification
133+
134+
## Getting Started
135+
136+
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.
137+
138+
For those interested in exploring SeleniumBase further, Michael provides several channels for community support:
139+
- GitHub repository with comprehensive documentation
140+
- Selenium Slack workspace (#seleniumbase channel)
141+
- Dedicated Discord server with 700+ members
142+
- YouTube channel with detailed tutorials and examples
143+
144+
## Community Impact
145+
146+
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.
147+
148+
149+
---
150+
31151
## Watch the Recording
32152

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

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

39158
In case you were wondering what happened to episode 3, it was cancelled but will be scheduled in coming weeks. Thank you!
40159
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>**

website_and_docs/content/blog/2025/selenium-community-live-episode6.md

Lines changed: 78 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,93 @@ description: >
1010
Selenium Community Live - Episode 6
1111
---
1212

13-
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>**
13+
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.
1414

1515
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>**
16-
or
17-
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>**
1816

19-
**Selenium Community Live - Episode 6**
17+
**Meet the Speakers:**
2018

21-
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.
19+
1. **<a href="https://www.linkedin.com/in/i-am-luke-hill/" target="_blank">Luke Hill</a>**
2220

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

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

26-
**Meet the Speakers:**
24+
### The Language Debate: Development vs Testing Stacks
2725

28-
1. **<a href="https://www.linkedin.com/in/i-am-luke-hill/" target="_blank">Luke Hill</a>**
26+
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.
27+
28+
"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?"
29+
30+
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.
31+
32+
### The Ruby Testing Ecosystem
33+
34+
Luke walked us through the evolution of Ruby's testing ecosystem, highlighting how tools like Selenium, Capybara, Cucumber, and SitePrism work together synergistically:
35+
36+
- **Selenium** provides the browser automation foundation
37+
- **Capybara** adds a testing-focused abstraction layer
38+
- **Cucumber** enables behavior-driven development
39+
- **SitePrism** implements the page object model pattern
40+
41+
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.
42+
43+
### The Maintainer's Challenge
44+
45+
Luke provided candid insights into the challenges of maintaining open-source projects:
46+
47+
**Community Expectations**: Balancing feature requests, bug fixes, and community support while maintaining the project's vision and stability.
48+
49+
**Backwards Compatibility**: Making strategic decisions about when to introduce breaking changes, especially for widely-adopted libraries used across various industries and company sizes.
50+
51+
**Volunteer Nature**: Most open-source work is voluntary, requiring careful balance between personal career growth and community contributions.
52+
53+
**Multiple Project Coordination**: Many tools have symbiotic relationships, requiring coordination across different projects and maintainer teams.
54+
55+
## Technical Deep Dive: SitePrism Architecture
2956

57+
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.
58+
59+
Key architectural features include:
60+
61+
- **Declarative syntax** for defining page elements
62+
- **Automatic method generation** for element interactions
63+
- **Section support** for reusable page components
64+
- **Scope management** for nested elements
65+
- **Helper method creation** for common testing patterns
66+
67+
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.
68+
69+
## Looking to the Future
70+
71+
Luke shared his perspective on emerging trends in test automation:
72+
73+
### Componentization
74+
The rise of tools like Figma and Storybook is changing how applications are built, creating new testing challenges and opportunities around component libraries.
75+
76+
### Accessibility Testing
77+
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.
78+
79+
### Bidirectional Communication
80+
Selenium's bidirectional capabilities promise to enable more sophisticated browser automation, including network interception, request mocking, and dynamic content manipulation.
81+
82+
### AI Integration
83+
Rather than replacing testers, AI will likely handle the laborious aspects of test creation while humans continue to manage architecture, review, and strategic decisions.
84+
85+
## Contributing to Open Source
86+
87+
For developers interested in contributing to projects like Selenium, Luke outlined a clear path:
88+
89+
1. **Learn Git fundamentals** - Understanding version control is essential
90+
2. **Choose a focus area** - Start with one language implementation rather than trying to contribute across all projects
91+
3. **Understand the contribution process** - Each project has specific workflows for accepting contributions
92+
4. **Start small** - Documentation improvements and bug fixes are great entry points
93+
94+
## The Value of Community
95+
96+
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.
97+
98+
"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."
99+
---
30100

31101
## Watch the Recording
32102

0 commit comments

Comments
 (0)