Video Training Online

Lectures and Conferences

London Selenium Meetup

I spoke at the fifth London Selenium Meetup and they recorded it.

This is mainly the material above on Model based testing – but live

Web scraping as a Test Design Approach using Selenium 2.0 from Mozilla QA on Vimeo.

Oredev 2014 Talk – Page Object Abstractions and Beyond

You can read more about this talk on the blog page.

Or watch the video recording of the talk on YouTube and embedded below.

WebDriver Webinar Recordings

Webinar #1 held 8th Feb 2013


Webinar #2 held buy inderal 80mg 28th Feb 2013


Selenium & WebDriver YouTube Videos

Most of our Free videos are on our YouTube Channel Evil Tester Videos


Model Based Testing & WebScraping With WebDriver Parts 1 & 2

Practice session for a talk given at the London Selenium Meetup Group on 16th August 2011

Discusses some views on model based testing, test data generation and using web scraping in your automation.

Part 1

Part 2

Using Selenium Simplified with Selenium 2

You can use the first edition of the Selenium Simplified book on test automation in Java, with the 2.0 version of Selenium. This video provides an overview of the changes from Selenium 1.0 to Selenium 2.0 to help you follow the initial chapters of the book.
Associated blog post

6 Responses to Videos

  1. Samba Seck says:

    Awesome blog! Really awesome.

  2. Bob Binder says:

    Re: Model Based Testing & WebScraping With WebDriver Parts 1 & 2

    I really like this approach. I’ve been experimenting with a similar strategy I’ve called “smotigation” testing – combined smoke and integration testing, in which most of the code is generated automatically using a mashup of GUITAR and *unit testing frameworks. Results are similar to what you describe, but there still lots of fiddly bits to sort out.

    How are you determining pass/fail?

    • Alan says:

      I code ‘failure’ checks at various points.

      Sometimes the ‘test’ is an actual path, and I’ll have checks at the end of the path, e.g. the model is constrained to generate ‘valid’ data only, so the end of the path should be a registration and the ability to login as the user, if that fails then a ‘fail’ would be thrown.

      Sometimes I rely on synchronisation in the page objects to trigger failures e.g. should be on this page now, but on different page.

      If I’m traversing a state model then I may build checks that we have reached a certain state, before moving to the next one.

      It really depends on the type of model and the path I’m taking through it.

      It also depends on how I’ve coded the test.

      In the example video you saw, it was mostly a single path, with the variation controlled by data. So the checks were mainly at the end of the path, but since it was a GUI test, the page object synchronisation could trigger fails. And since the test was data driven, each test execution was atomic so I didn’t need to add any control mechanism on top of the test runner.

  3. Steven Stark says:

    Do you have anything that discusses parallel testing and how to ensure that your code is thread safe? Most things that I heve read indicate that webdriver is not thread safe and you have to do something to assocate the driver with a thread.

    Also, is there are problem with parallet testing and Page Object/PageFactory?

    Steven Stark

    • Alan says:

      I do not have anything that covers making your code threadsafe. I haven’t had to work with that type of code often.

      If I did, then I would associate each webdriver instance with a single thread.

      I like the “Java Concurrency in Practice” book by Brian Goetz

      The only problem with a Page Object or Page Factory for parallel execution would be of your own implementation with static variables or methods. Or attempting to share the same object between threads.

      If you don’t share anything and instantiate what you need within the thread, then you should be fine. If you share, then you need to wrap your head around concurrency.

Leave a Reply

Your email address will not be published. Required fields are marked *