In November at Eurostar 2012 Alan co-presented (with Simon Stewart) the "Selenium Clinic" tutorial. They won the award for Best Tutorial.
Alan writes on the following blogs and web sites:
Selenium WebDriver is the web automation tool of the moment. Selenium WebDriver skills are in demand. And when you understand the Selenium WebDriver usage patterns that this course teaches, then you can increase your automation effectiveness.
This section is not mandatory. I feel obliged to add a small section on the history of Selenium and WebDriver because every other trainer will, but I do not want to spend a lot of time on the history, because I want to get you coding.
Install firebug and firepath, with reasons why you should and a quick demo of each
FireCookie no longer required as the functionality is now part of firebug
A video showing the installation of Maven. I don't use any extra tools such as Rapid Environment Editor and I show you a common issue that you might encounter when installing Maven, I also explain the thought processes around fixing it.
This is completely optional. You do not have to use this tool. Some people prefer to use the windows properties directly, as shown in the previous video.
Install the Rapid Environment Editor to make it easier to amend Windows Properties
This is an older version of the "Maven 2014" video showing how to install the tool using console and rapidee to help. If you have already done the "Install Maven 2014" video then you do not need to do this. Install Maven, a build and dependency management tool
How to install IntelliJ 13 and create your first test quickly. We expand on this in future videos.
Install IntelliJ Free community edition. I have left this as an older version of the IntelliJ install - most people will want to use the new IntelliJ 13 version now.
The Mac setup seems quite straightforward.
I installed the Java JDK by following the instructions on the oracle site.
I installed maven by following the instructions directly on the maven.apache.org site for Mac. And the video on this lecture shows how I did that.
I installed IntelliJ for Mac from the JetBrains site.
I was able to import the projects into IntelliJ and create tests and pom.xml as demonstrated in the Windows lectures. I didn't really find many differences in the installation from Windows to Mac.
The Udemy interface can lead to mistakes when asking a question or an answer. I want you to be able to contribute to the course and ask questions so in this video I'll show you how the Udemy interface works for questioning.
How to contact your instructor via Udemy messaging? Udemy haven't made the process of messaging your instructor particularly easy. So I'm going to show you how to do it. The short version is visit the following link and message me: https://www.udemy.com/u/alanrichardson
The supplementary material for this lecture contains the source code for this course. Download the zip file from the materials tab after starting the lecture. Unzip the file and you can import the source code into IntelliJ following the next lecture.
Shows how to import the Course source code from a zip file using IntelliJ 13
A set of summary slides and tables that you can use to help remind you of the API usages as you work with WebDriver. Print these out for a handy small reference.
A quick overview of how to use the Udemy messaging to request access to the svn repository, and setup an account on xp-dev.
Some people prefer to take the source code from the svn repository. This is exactly the same code as found as a zip file in the earlier lecture.
You can skip this section until later in the course if you want. You don't really need to do this until you reach the lectures on continuous integration later in the course.
When using other people's source code you might discover that you receive an error like.
"java: strings in switch are not supported in -source 1.6
(use -source 7 or higher to enable strings in switch)"
Or something similar.
This video shows you the steps I take to avoid it by adding code in the pom.xml file and the checks I make in the IntelliJ IDE to make sure my configuration is correct.
The compiler settings:
File \ Settings \ Compiler \ Java Compiler
The Project and module settings:
File \ Project Structure | Project Settings \ Project
File \ Project Structure | Project Settings \ Modules
Basic description of maven, what it does, what we will use it for, and where to find more information on maven.
Use maven from the command line to create a simple maven project, with a brief explanation of the pom.xml file.
You will generally use the most up to date versions of IntelliJ. This shows how to import the initial pom you created using the import wizard of IntelliJ 13. Using import allows you to setup the configuration during the import process, rather than as you work with the project.
You will generally use the most up to date versions of IntelliJ. This shows how to import the initial pom you created using the open wizard of IntelliJ 13. Using Open allows you to setup the configuration after the import process as you work with the project. This is useful when you have more experience and a more fully detailed pom.xml file.
Import the automatically generated pom into an IDE.
This video is a little out of date, and has been retained for historical reasons. You will generally use the most up to date versions of IntelliJ, so look at the updated IntelliJ videos, or the video on how to import the course source code.
We go off to junit.org to find the most up to date version and amend the pom file.
Amend the test code automatically generated by Maven
Amend the pom file to include Selenium as a dependency by going off to SeleniumHQ.org and seeing what version has been released.
A short summary of why we use maven on this course.
Tips for working with Maven. If you experience problems getting started with maven then this slidedeck might help.
Use HtmlUnit driver to visit http://www.compendiumdev.co.uk/selenium and assert that the title starts with "Selenium Simplified"
A little about the WebDriver interface, basic commands on driver and the basics of HtmlUnitDriver
Learn your IDE, "Get a feel for that"
Have the test run in Firefox, and changes required to make that happen.
How to use the full version of hamcrest with JUnit and Maven. A short discussion of the problem, then demonstration of how to use Hamcrest 1.1 and 1.3 with JUnit 4.10
JUnit 4.11 makes it easier to include the Hamcrest matchers in your project. This slidedeck explains how.
Project window settings
AutoScroll to source/from source
navigation short cut keys:
An overview of the basic WebElement manipulation commands, click, clear, sendKeys and submit
An example of what might happen if you try to automate without some additional knowledge. Includes an example of how to inspect the page and construct tests using firebug.
An overview of WebDriverWait and the ExpectedConditions helper class
An introduction to the manipulation exercises, with an overview of the page that we will be testing and the tasks in the exercise to perform. Also an overview of a sample manipulation test.
An introduction to the sample answers, describing an update to Firefox 16 and how the tests have had to change and new synchronisation added
I submit the form in as many different ways that I could think off, and I'll explain the cross browser issues associated with this. I also caution you on going 'too far' with your automation and try not to test 'in built' browser functionality, unless you want brittle tests.
Look at the clear field and send keys for comments, and consider if waiting for page is necessary in these tests.
Overview of the answer and explain tests with conditional statement to help them setup prerequisites for the test.
I created two examples, one more robust than the other, and I discuss how I could make it yet more robust.
Four different ways of implementing the answer, explained. With an example of refactoring common code into a private method.
Demo of the answer to question 6
Demo of the optional upload file and dealing with file dialog exercise
Summary of the manipulation commands covered. Discussion of 'not getting hung up on file browser dialogs'. Demonstration of how I use tests to answer my own questions about the API. Remember to model the intent of your test and check that the WebDriver API does the same as the real world. A little more information about SendKeys and modifier sequences.
Alan breaks down each subject into easy to follow chunks and covers all the areas you need to be aware of to build a top notch test automation environment with Java, Selenium and Jenkins. Alan not only keeps the course up to date, but responds to queries posted to his students. I cannot recommend this course enough.
Excellent course, covering a great deal of ground - and one that I will continue to constantly refer back to. I've undertaken numerous Udemy courses and the quality of this one is way above the average. Hard work at times if, like me, you come without programming knowledge but who doesn't want to be challenged as they learn? Alan is also the best tutor I've come across on Udemy in terms of responding promptly to questions and suggestions.
With limited knowledge of Java, I was asked (as a manual tester of 8 years) to head the automation initiative at my place of employment. I began coding and everything was working great, and only THEN did I happen upon this course by way of a colleagues suggestion. The course presented everything I had done, but in such a way that I was able to refactor and make things better. I also learned enough theory and practical advice to make me confident in continuing with more challenges. This course is easy to follow, robust in its presentation, and absolutely critical to anyone entering the realm of QA Automation. I thank Mr. Richardson from the very depths of my being for enriching my knowledge of the subject. His enthusiasm is inspiring and makes for a turkey engaging experience, that for me personally has developed into a reinvigoration of my love for testing!
One of the best technical courses I've been on, really nailed the subject for somebody who's technical but doesn't know much Java. I'm already creating Webdriver frameworks in my current role and look forward to learning more in the future. Well done Alan!
Very comprehensive basic knowledge about Automation, Automation tools, Java & Tools, methodology and more... Usually 'and more, much, much more' is meaningless but in this case it is absolutely true. Aside of the basic Alan provides you with the compass and the map to explore more on your own. I would recommend a bit more details about the IntelliJ IDE but this course is not about this topic so i fully understand that choice.