A comprehensive guide to Selenium BiDi functionality with Java examples, covering Chrome DevTools Protocol, WebDriver BiDi, network mocking, JavaScript error logging, and performance metrics collection.
Read more: Exploring Selenium BiDi FunctionalityExplains the importance of testing web applications under slow network conditions and provides a practical guide on how to throttle network latency and bandwidth in Selenium tests using BrowserMob Proxy.
Read more: Throttling network in Selenium tests using BrowserMob ProxyExplains headless browser testing benefits and limitations, providing Selenium WebDriver Java demos for Chrome, Firefox, HtmlUnit, PhantomJS, and JBrowser.
Read more: Headless Browser Testing with SeleniumDiscusses reasons for testing websites with JavaScript disabled and provides Selenium (FluentLenium) code examples for disabling JavaScript in Chrome and Firefox.
Read more: Disabling JavaScript using SeleniumDiscusses handling common components (header, footer) within the Selenium Page Object Pattern, compares inheritance vs. composition, recommends composition with DI, and showcases how FluentLenium simplifies this.
Read more: Selenium Page Object Pattern - how to handle common components?Shows how to measure page load times in Selenium using the PerformanceTiming interface, explaining access to metrics via JavaScript and providing a FluentLenium example.
Read more: Measuring page load times using SeleniumExplains how to capture and verify browser console errors (specifically SEVERE level) in Selenium tests using Chrome's logging capabilities, demonstrated with a FluentLenium example.
Read more: Adding console error log verification to Selenium tests using ChromeCompares Selenium WebDriver with the FluentLenium extension by implementing the same test scenario, demonstrating how FluentLenium simplifies setup, interactions, assertions, and waiting, leading to more concise code.
Read more: Selenium vs FluentLeniumExplains how to automate Reflected Cross-Site Scripting (XSS) tests using Selenium, covering disabling Chrome's XSS auditor, implementing a Page Object for a vulnerable page (XSS Game Level 1), injecting a script payload, and asserting if an alert appears.
Read more: Automate your XSS tests with SeleniumExplains the shift from Firefox Profiles to FirefoxOptions/DesiredCapabilities for configuring Firefox in Selenium, aligning it with Chrome's approach. Covers GeckoDriver setup and demonstrates setting capabilities like insecure certs acceptance, preferences, and log level.
Read more: Firefox Selenium Browser Capabilities explainedDemonstrates running Firefox headlessly with Selenium, showing the simple `--headless` argument configuration in FirefoxOptions. Includes a full FluentLenium/TestNG demo testing the author's blog, highlighting the benefit for CI environments.
Read more: Headless testing with FirefoxExplains headless browser testing benefits for CI, focusing on Google Chrome's native headless mode (v59+). Provides a Java/Selenium/FluentLenium demo showing how to enable headless mode via ChromeOptions and run a simple AJAX test.
Read more: Headless testing with Google ChromeA basic tutorial on using Chrome DevTools to find and test CSS selectors for Selenium automation, covering inspect element, copy selector, and console verification ($$), with examples and a Java/FluentLenium demo.
Read more: How to find & test CSS Selector using Chrome DevToolsLearn how to integrate BrowserMob Proxy with Selenium to capture network traffic (HAR files) for performance analysis, identify bad HTTP responses, and compare requests. Includes Java/TestNG/FluentLenium examples.
Read more: BrowserMob Proxy Selenium network performance extensionShowcases several open-source E2E testing suites (Wikia, WordPress, NASA, Jenkins, Mozilla, Optimizely) for learning, referencing different languages and frameworks while emphasizing the test pyramid.
Read more: Best complete testing suites available onlineProvides four methods to handle file downloads in Selenium/Java without brittle tools like AutoIT: checking URL status with HttpClient, simulating user download with cookies, verifying non-empty download, and confirming MD5 checksum.
Read more: How to Download files using Selenium 2Explores Selenium waits, highlighting issues with Thread.sleep() and implicit waits. Introduces explicit/fluent waits and showcases FluentLenium's concise await() methods for stable, readable, and efficient waits (e.g., AJAX completion).
Read more: Introducing FluentLenium 2 - Selenium waiting gameExplains configuring Chrome capabilities in Selenium Java using ChromeOptions (within DesiredCapabilities). Covers adding arguments/switches and experimental options/prefs, providing links to comprehensive lists and examples like disabling notifications.
Read more: Selenium - Browser Capabilities explained 1Introduces FluentLenium framework for Selenium via a Facebook group approval automation example using Java/TestNG. Covers setup, Page Objects, CSS selectors, and dynamic waits.
Read more: Introducing FluentLenium 1Addresses the common issue of unstable Selenium tests ('maintenance hell'), emphasizing the need to prioritize stability, exclude flaky tests, and build trust in automation results.
Read more: Selenium maintenance hell