Now,
tools which help us create content from static web pages are
insufficient when dealing with dynamic content.
That is where Selenium comes in.
And how to scrape information from dynamic websites is exactly
what we learned later on in this course.
But first, let's have a look at what Selenium is and what it has to offer.
Selenium is a set of tools and libraries that automate web browser actions.
That is what it does.
It automates web browsers, and what you do with it is entirely up to you.
Selenium uses a web-driver package that can take control of the browser and
emulate user oriented actions to trigger desired events.
Events such as clicking buttons or links and even scrolling.
It is free and open source and works across Windows, Mac OS, and Linux.
It also supports plenty of language bindings,
such as Python, Java, Ruby, Scala, C#,
etc., so you can write scripts in whatever language you're comfortable with.
There are four components to Selenium.
Selenium IDE is a simple record and playback kind of tool,
which comes as an add on from Mozilla Firefox only.
It is used for prototype testing.
Selenium RC, or remote control, was the first tool of the Selenium suite.
It is a test tool that allows you to write automated web application
UI tests in any programming language against any HTTP website using
any mainstream JavaScript enabled browser.
It is known as Selenium 1.0.
Then comes the Selenium WebDriver,
which is what we'll be using throughout this course.
It is probably the most important tool of the Selenium suite.
We'll dive deeper into this in the next video.
And finally, the last component of the Selenium suite is the Selenium Grid.
It is used for parallel or distributive testing,
which means it allows us to execute test scripts on
different machines at the same time.
Where is it used?
Like I said, Selenium automates web browser actions,
and as such,
scripts can be made to automatically perform the same
interactions that any user can perform manually.
The biggest use case would be automated web application testing,
and that is what it was originally intended for.
But because of its flexibility, it is also used for other purposes,
such as scraping dynamic web pages, which is what we are going to do.