InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Debugging Tips for Selenium Test Failures

Posted by Chris Sims on Jul 06, 2009

Sections
Process & Practices,
Architecture & Design,
Development
Topics
Agile ,
Debugging ,
Artifacts & Tools ,
Software Testing
Tags
Selenium ,
Automation

While Selenium has gained wide acceptance as a useful tool for automating browser-level tests, tracking down the cause of test failures can take significant time. Daniel Wellman has shared two of his best tricks to greatly reduce debugging time for failed Selenium tests.

The first technique is to capture a screenshot any time a test fails. There are a couple of methods provided to support this: captureScreenshot, and captureScreenshotToString. The post Capture Screenshots of Selenium Failures, on the YouDevise Developer blog provides some example Java code for how this approach might be implemented.

The second technique is to capture the HTML DOM contents when a test fails. For this, Wellman recommends using the method getHtmlSource to capture the contents of the DOM and write them out to a file.

Taking the time to incorporate these two techniques could pay off handsomely in time saved debugging. This is not the first time that Wellman has written about the value of investing in your tools to gain more productivity. What improvements have you made to your toolset, testing or otherwise, that had big payoffs for you? Leave a comment and share with the InfoQ community.

  • This article is part of a featured topic series on Agile

Related Sponsor

In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!

More detail on capturing screenshots with Selenium by Phil Smith Posted
screenshot is often useless by Tomasz Kaczanowski Posted
Re: screenshot is often useless by Phil Smith Posted
  1. Back to top

    More detail on capturing screenshots with Selenium

    by Phil Smith

    There are a series of articles on the Cloud Testing Blog (blog.cloudtesting.com) about capturing screenshots with Selenium.

    The Cloud Testing service offers this all plus more with a Pay As You Test model - see www.cloudtesting.com/ for more details.

  2. Back to top

    screenshot is often useless

    by Tomasz Kaczanowski

    I tried once to make screenshots but it was rather useless - you can see only the upper part of the web page which is often not enough

    i like the way WebTest Canoo does it

  3. Back to top

    Re: screenshot is often useless

    by Phil Smith

    Hi Tomasz,

    You can capture the full browser window, as opposed to just the O/S window with Selenium for Firefox and IE with their native commands.

    Cloud Testing has extended this to also work with Safari, Opera and Chrome. This will hopefully be integrated back into the main Selenium release soon.

    See blog.cloudtesting.com/2009/06/24/capturing-scre... for more details.

Educational Content

Jesper Boeg on Priming Kanban

In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.