We have seen our tests work really well by recording them and then playing them back. Unfortunately there are a number of things that Selenium cannot do. Since Selenium was developed in JavaScript, it tries to synthesize what the user does with JavaScript events. Unfortunately this does mean that it is bound by the same rules that JavaScript has in any browsers by operating within the sandbox.

Silverlight and Flex/Flash applications, at the time of writing, cannot be recorded with Selenium IDE. Both these technologies operate in their own sandbox and do not operate with the DOM to do their work.

HTML 5, at the time of writing, is not fully supported with Selenium IDE. A good example of this is elements that have the contentEditable=true attribute. If you want to see this, you can use the type command to type something into the html5div element. The test will tell you that it has completed the command but the UI will not have changed, as shown in the following screenshot:

Selenium IDE does not work with Canvas elements on the page either so you will not be able to make your tests move items around on a page.

Selenium cannot do file uploads. This is due to the JavaScript sandbox not allowing JavaScript to interact with < input type=file> elements on a page. While you might be able to send the text to the box it will not always do what you expect,so I would recommend not doing it.

We will be able to automate a number of these elements with Selenium WebDriver in later chapters of this book.