Hello everyone, in this video session, I am going to explain part 17 of selenium for new features video series. That is roadmap roadmap of selenium. So Selenium roadmap in this video session, I am going to explain Selenium roadmap. So it all started with something known as Selenium core. Okay. So it's like Jason Huggins, as developed the Selenium core, has developed the Selenium core for automating the web applications or automating the web apps applications.
Jason Huggins, as there are the Selenium core, which uses the Selenium core uses JavaScript arrays. Okay, selenium core user to inject this JavaScript code into the browsers, into the browsers. So Selenium core created by Jason Huggins for automating the web applications user to inject JavaScript code into this browsers for automating the web applications. Okay, web applications. So and how the Selenium core user to look like the Selenium core user to look like this case, okay, let me show you. This is a Selenium core, okay.
It used to like like a table kind of format. As you can see some rows and columns are there Here is a table kind of thing. And we used to create like a, we can create some tests inside this table kind of structure and then it's up to them. Okay. And internally, these commands or whatever that you're seeing on the screen on the Selenium core, test runner, okay uses JavaScript code. to inject into the browsers.
So JavaScript code used to be injected into this browsers for performing the automation on this web applications. So this is how it all started guys. By using the JavaScript injection into the browser's Jason Huggins was able to create the Selenium code which injects JavaScript into the browser's are performing automation. So the structure is like Table Table kind of structure right table, you have to create some table rows and columns, he had to create the automation test. Okay, in order to create the automation desk, we have to create this table kind of structure okay and there are different commands and others actions to be done. Okay, the table of format.
Then, then afterwards, there came something known as Selenium one. Okay. Then Selenium one was released into the market It is okay after Selenium core Selenium one got released into the market internally Selenium one was using Selenium core internally Selenium one is using Selenium core only okay. But what is the difference between the Selenium core and selenium one then in Selenium one we have Selenium RC J's okay let me say this in Selenium one we got something like Selenium RC okay. The Selenium RC internally uses internally uses Selenium core is nothing okay. After Selenium core Selenium one got religion to the market and the Selenium one is nothing but has Selenium RC which internally uses Selenium for okay which internally uses Selenium core the same technology again Again, the same technology has been used here.
My Selenium one that is a synonym for internally uses JavaScript code to be injected into the browsers for getting the things done. But what is the difference between Selenium current Selenium one that is our civic, which has in Selenium for here guys, in case of this Selenium one, we can write the programming languages Okay, we can build the test using the programming languages. This is new. In Selenium code, there is no programming language to create the test, or to automate the test. There is no programming language being used. But they come into Selenium one, which internally has the Selenium RC and which internally has Selenium code uses this programming languages for creating automation tests.
And there's one more thing known as server Okay, proxy server, selenium RC proxy server was there to mediate between the automated tests, programming language language created tests and okay and approaches. So let me show you that. So, this is Selenium RC guys. As you can see, this is a programming language code created using any of this programming language. Okay, so Selenium RC code this is which uses this programming language like Java or Ruby or Python or Perl or PHP or dotnet. Okay.
And as I already said there is some server in between these browsers. These are the process guys. Okay. And in between this core Selenium RC core programming language code and the actual browsers, we have this ASIMO, selenium RC remote control server, selenium remote control server. So whatever the programming that is, selenium RC programming that it is suited here, okay, need to be mediated by this remote control server proxy servers. So the browser's so whatever the talents are there, they need to be passed to this RC server.
And this RC server used to inject this same thing internally has a cilium goal is this remote control server as a Selenium core internally, which injects the JavaScript code for test for automating the web applications on this different browsers. Okay, so same, same thing, guys, that is here also, this has this doesn't have any programming, but it used to inject JavaScript code into the browsers for getting the automation done. Here, only difference is that we have this programming code instead of this only interface. And this programming interface will communicate with the remote controls server, and then it injects the Selenium core for injecting the JavaScript code into the application for performing automation. Okay, your server is there, your programming is there, but here only interface is there. Okay.
That's the difference. But still, it's not that much that kind of securities, because the applications have been evolved over a period of time. Right. So when we were very, we used to this when we used to use the Selenium core test runner. The JavaScript was a lot of days, okay, so it was not serious. the browser's were allowing the JavaScript coder to be injected But later, when as a weapon evolved, and the standards came, they're like our security problems got identified because of the JavaScript code insertion into the different browsers here using the Selenium for.
Okay, browser started restricting this injection of this JavaScript code. Okay. So so things are changing, right? In Selenium three, it was okay. Okay, till Selenium three, the Selenium core used to inject this JavaScript code. But later, what happened?
The browser started restricting this JavaScript code to be injected into the browser's okay. So this will not work, right. So at that time, nice to solve this problem. We got this remote control server, okay, remote control server, which you saw trickily. Okay. Here directly injecting the JavaScript code into the browser's this, whereas this one used to trick the browser's are injecting the JavaScript code.
Okay, this remote control server used to take this role For injecting the JavaScript code, even after having the restrictions of injecting the JavaScript code, browsers are restricting the JavaScript code from injecting into their browsers. Okay. So to avoid that this was not working. So this came into the picture where this remote control server is to trick the browser's Okay, for injecting the JavaScript code, but still it is not safe, right? It's not reliable. Because today, never tomorrow, like the JavaScript is not a proper platform to inject into the browsers because they are restricting illegally or tricky way.
We are trying to inject the JavaScript code into this browsers as part of selenium three, only the difference here is we have this remote control to inject the JavaScript code directly into the browser. Another thing is like we have this programming programming code followed in the Selenium RC, then came Selenium WebDriver Okay, after this game, selenium two okay. So in Selenium tow along with the Selenium RC along with the Selenium RC which used to internally use Selenium core plus other thing like Selenium WebDriver came into picture. Okay. Selenium WebDriver, selenium RC, both are there here. Okay, here no server.
No proxy server is the server. Here in Selenium one, as part of selenium RC it used to trick the browser's for injecting the JavaScript code for automating the stuff, right? But in Selenium two, there came something like Selenium WebDriver, which doesn't use any proxy servers, okay, which doesn't use any proxies are still Selenium RC is their race, which has the same things. But a new thing like Selenium WebDriver came in the Selenium though, which doesn't use any proxy server, and it also has a programming language. Okay. We can actually program that In programmed automated tests, we can actually program the automated tests.
So So what's the difference between the Selenium WebDriver and RC here? The difference here is here RC for remote. For Selenium RC, we need this set of proxy servers for injecting the JavaScript code into this browser using the Selenium code. Okay. But in Selenium WebDriver, we don't have this proxy server. And we have something like JSON wire protocol.
We have the Jason wire protocol. Here we have the programming code created in Selenium WebDriver. API s, and they used to communicate to the browsers using this JSON wire protocol. Okay. So here, the Selenium WebDriver used to natively communicate with the browser's case Okay, here trick requires us like injecting some JavaScript and Okay, getting that instant, but here, no injection of the JavaScript arrays, so native, okay, native drivers were there like for each and every browser. They came differently.
Driver Safari Chrome browser chrome driver came for Firefox browser Firefox driver came okay. So and by using this Jason wire protocol this Selenium WebDriver used to communicate with the browsers okay in a native way okay native communication native way of communication natively communicate without using the JavaScript injection and on so they used to natively communicate without any problems so here like a trust God created a bitch right here the trust between the Selenium WebDriver and browsers got created because they are natively communicating with them. every browser has a driver base Okay. Here every browser has a driver and which are designed for communicating with this driver Okay, this web driver can communicate with this drivers and now this browsers will trust anyhow this drivers Okay, these browsers will trust this drivers and the Selenium programming Selenium WebDriver code okay. can communicate with Drivers they are actually created for Selenium WebDriver communication using this JSON Web protocol without any improper injection of the JSON, JavaScript code or any other they are not not here it is okay.
No JavaScript injection here. Okay, native communication was done at the end of this JSON wire protocol protocol actually communicates between the two entities. Okay. Your JSON Web protocol used to communicate the Selenium WebDriver things with the different browsers of this browsers in a native way. Okay. So avoid any trust issues in secure and a native way the communication used to happen is okay.
This is Selenium toe guys. Then came Selenium three. Okay, then came Selenium three. Okay. So what is the difference between the Selenium two and selenium three Nothing much different device. So as browsers, complexity got increase day by day and they started restricting the JavaScript injection into their code completely, okay, there was no need of continuing the Selenium RC days okay.
In Selenium though, selenium RC was also there along with the Selenium WebDriver which used to natively communicate with the browsers okay with with elbows or JSON Web protocol, okay. But in Selenium three, the team has decided to okay the team has decided to drop the Selenium RC, so only Selenium WebDriver was there yet. Okay. The employers Selenium WebDriver here to drop the Selenium RC, which was internally using the Selenium core, okay, they have to improve the Selenium WebDriver they have to implement other new methods in Selenium WebDriver to drop the Selenium RC which I was internally using Selenium core. Okay. So after this complete takeover of selenium RC into Selenium WebDriver was done.
They traveled Selenium RC in Selenium three there is a difference in women Indian same thing as Selenium WebDriver will directly okay will natively communicate with the browsers with the help of this browser drivers using this Jason white protocol okay the same thing in Selenium three also but the only difference here is they dropped the Selenium RC here okay. So as a Selenium RC was in no use there is no need of continuing the Selenium RC this because Okay, so JavaScript it was internally using Selenium core which is a kind of restricted by all the browsers. So, so, to drop it they have to implement Selenium WebDriver how to implement the functionalities of selenium RC into the WebDriver. So they did all the changes that are required in the Selenium WebDriver to work on the Selenium RC okay to not depend on the Selenium RC they have added a lot of stuff into the WebDriver and finally dropped the Selenium RC as in the Selenium three women in the interesting okay they do communication, never the same Then came it didn't come guys but it's coming that is Selenium four okay.
So Selenium for otter the story behind the Selenium for them. So, in Selenium four will be having both say Selenium WebDriver which is there in Selenium three carry forward to Selenium four plus w three c standardized okay there are two web drivers nowadays one is normal web driver and other one is a W three c standardized web driver okay two things are there. So why we need this w three c standardized web driver? Okay, why we have to standardize that WebDriver is the thing right here. The change here is in Selenium WebDriver w three c standardized WebDriver instead of this JSON Web protocol, okay, as part of selenium four, they are trying to introduce Selenium WebDriver w three C, which will use w three c protocol. Okay, instead of JSON wire protocol.
This is the standardized WebDriver we'll be using the WC protocol for communicating that with the browser's for communicating with the different drivers of the browser's w three c protocol will be used in place of the JSON Web protocol. Okay, the same protocol is meant for the communication between the UE or WebDriver API. It also WebDriver API of selenium three here WebDriver API of selenium for okay. will be communicated with the different drivers of the browsers using this Wi Fi protocol in Selenium WebDriver double three C. Okay, so what what is going to change as part of this protocols here JSON wire protocol is area WCC protocol is here, here while communicating between this WebDriver API in this browsers, this JSON wire protocol Need to perform encoding and decoding okay why we generally performed encoding and decoding for security purpose okay for security reasons the encoding encoding and decoding used to be done is the Selenium WebDriver is a was not in the standardized form okay the importing and decoding has to be performed to further communication between the server WebDriver API and the browser since it is part of the Selenium WebDriver okay normal WebDriver but in Selenium server they are trying to standardize the WebDriver completely and release it as part of selenium for so that Okay, there is no encoding and decoding need to be done by this protocol is that it communication will happen, okay, where for every WebDriver API man here, you don't have to encode and decode for communication direct communication will happen.
What will happen when you standardize this stuff? There are a lot of advantages guys okay, by standardizing this Selenium WebDriver okay a lot of advantages will come that is All the companies in the market will start trusting Selenium WebDriver and will become popular let's say there is there is there are some tools like UDP or other stuff which are very secured okay they are trusted by most of the market okay. But coming to Selenium that trust is not completely created guys people may not trust it completely because it's not in a standardized way okay it has to be standardized to the web standards it should be standardized the cylinder WebDriver should be standardized as for the web. So, when you standardize that the companies will start trusting the Selenium WebDriver which is W three standards and and of course, it will become popular after standardizing because the trust will increase and the popularity will increase automatically and even it will become stable base okay.
So, it will the working of this Selenium WebDriver w three c will be more stable when compared to the normal Selenium WebDriver okay because of being standardized, okay, because other parties like browsers and other software are already standardized. And if the Selenium WebDriver Results are standardized, the stability will increase. That's the essence of ADR and all things will reduce, like drastically. So now Selenium WebDriver, after after standardizing will directly communicate with the browser using the WC protocol, okay, you don't have to do any encoding or decoding, okay. of the WebDriver API for communicating with the browsers, you don't have to do any encoding or decoding or encoding decoding is required. But here No, it's not required that it communication with the browser's drivers.
So and it's not only like so generally in Selenium WebDriver is implemented in other softwares. Also, okay, we know that any WebDriver API is only not for Selenium automation, guys. But if you go for other things like mobile automation stuff like appium Okay, other software's are there in the market, which are dependent on the Selenium WebDriver API only. Okay. They are implemented on top of this sort of driver API as a rappers they're implemented. Like one example of a mobile area is like appium is On Selenium WebDriver API only.
So, so, the compatibility issues may come days Okay, while doing this, while implementing the Selenium WebDriver API in different software's the compatibility issues may come Okay, compatibility issues may come. So, now after standardizing the Selenium WebDriver API this compatibility issues will reduce okay they will be resolved. So, Selenium WebDriver market is only not restricted to Selenium WebDriver guys a lot of other companies are using the Selenium WebDriver on the top of okay it that is like appium etc. So, because of this standardization they will also get benefited. So, I will explain more about this why the standardization and all those things in the next video session. Okay.
But now let's understand at a high level okay. And now we have here as per the graph started with Selenium core, then came Selenium one which has Selenium RC and selenium code internally. Selenium Do they have the same Selenium RC under new thing like Selenium WebDriver which natively communicates with the browser's has come then Selenium three, they decided to completely drop the Selenium RC which was internally using Selenium core for injecting the JavaScript code into the browsers for automation as it is no longer required there and try to drop it for dropping they have to move they have implemented few things into the Selenium WebDriver. So they implemented and dropped it in as part of the Selenium three as part of selenium four they wanted to standardize this WebDriver so that it will become more compatible stable, reliable and trustworthy in the market. Okay and will be loved by all the community okay for using without any trust and other security problems.
So now in Selenium four, they have you they have bought this Selenium WebDriver and W three standardized driver good Okay, they didn't drop the WebDriver it so in Selenium for the upcoming Selenium upcoming days, when the Selenium five will be released, okay. Selenium file may release. They are planning to Okay. Okay. They are planning to go The Selenium WebDriver and only have this only one version of WebDriver that is Polish a standardized WebDriver w three w three standardized WebDriver they want to use continue okay in the coming days the WebDriver w three c will be there and other thing will be dropped okay. This normal WebDriver will be dropped at least not in a standardized format.
So, for that they will implement all the things into the web standards WebDriver And finally, drop the WebDriver as part of selenium pie Okay, let's see this diagram. So, it will make your things more clear now. So, now, originally there was something like Selenium core created by the Jason Huggins for in a tabular format like this to automated applications later came Selenium one, which was having the Selenium RC, which is internally implementing the Selenium core, right. So then afterwards came Selenium two, which not only has the Selenium RC but also has the WebDriver in selenium, RC the Programming is there okay programming or no language and server server proxy server was there, but in Selenium WebDriver Selenium in Selenium to Selenium WebDriver came extra apart from Selenium one and selenium three they have brought the Selenium RC which was internally using core. Okay, so they dropped it and completely implemented the WebDriver.
Yet only native come in Selenium WebDriver native communication will happen with the, with the WebDriver API and browsers using the JSON Web protocol in Selenium forth in Selenium for apart from the serial driver, which was natively communicating with the browser's using the JSON protocol. They have introduced something like WC w three Siemens World Wide Web Consortium, okay WebDriver which is standardized WebDriver according to the web browser standardization, okay. So now we have that and which uses this w TTC protocol for communicating between the WebDriver API and the browsers. Okay, which doesn't requires any encoding or decoding of the APS. So, it's like that it communication between the WebDriver API and browsers will happen here here native communication here direct communication. Now in the future Selenium phi when it comes they will drop this WebDriver always and they will only continue with this w three c WebDriver.
Standards WebDriver okay. So, this is how the roadmap is guys, it started like this and then they are dropping whatever that is not required and going in with whatever they want to okay. So so that's it guys. This is a roadmap of selenium and especially Selenium four and selenium five are going to be the like, highlights as as you can see, they are getting standardized and they are going to drop the unnecessary stuff, okay, things are going to be good in them Millenium market because of this kind of standardizations and the compatibility trust and stability of the South, the Selenium WebDriver and dependent software's will also increase along with that browsers compatibility Fine, fine guys. And coming to this Selenium for the major changes only this w three standardization is okay. But the major highlight change of the Selenium four is from Selenium three is the standardization of the W three C as part of the WebDriver.
That's a major change. So hoping that you understood this, this video session in detail. Now in the next video session, I will continue with other pending topics on Selenium four and its new features. Okay, so that's it guys. See in the next video session. Thank you.
Bye