 So it's actually not just me. There's going to be a few co-presenters. So what I've done is I've prepared a video of all the exciting things that we're going to be talking about. I'm going to present that. But what I'm also going to be doing is I'm going to be in the discussion board and I'll be answering questions and stuff like that. So if you have any questions, there's a talk that's going on. Hit that discuss button. Hit the Q&A, ask away, and I will be happy to answer as the talk is proceeding. But for now, let me just press all the magic buttons. Hi, my name is Simon Stewart and I'm here to talk to you about the State of the Union. A little bit about me before we begin. I am the lead of the Selenium project. I'm the co-editor of the W3C web driver specification. And I am also the owner of the Java bindings. I know it's a little bit weird to do a conference like this and I haven't done it very often. And I don't know how you feel about it either. But I hope this is going to be all right. Because I've got some people co-presenting with me, what I've done is I've recorded a lot of this talk before now. But I am live, I am listening, and I am taking part in the discussion. So if you have any questions or anything like that, feel free to ask them. And I will answer them online as we're going through this presentation. So, yeah. Well, welcome to this virtual Selenium conf. As is traditional, I'm going to be telling you about what's been happening in the world of the Selenium project. But before we begin, I think it's helpful to sort of explain a little bit about what I'm thinking and how we're approaching things. And the best way that I have for that is to describe to you the scientific method. Now, this is obviously one of the most successful ways of improving a theory or a practice that mankind has ever invented. You know, humanity's rise to civilization has really been powered by this thing. And, you know, it's how we ended up with the modern world that we know and we love. Like, we wouldn't have computers and we wouldn't have the internet if it hadn't been for people working and developing theories and figuring it all out. But what exactly is the scientific theory? Well, you can think of it as a simple three step process that you repeat iteratively. First thing you do is you make a guess. You don't really know how something works or the exact mechanics of it, but you can make a model of it in your head and you can make a guess. And we sometimes call these guesses hypotheses or theories. The guess is a model of how we believe the world works. And it should describe the observations we have made already. So, you know, a theory or the guess is not so much gravity is made out of monkeys, which is clearly ludicrous, but more like the world sucks as a way of describing gravity. Now, once we have a theory, once we have a sort of basic idea of how we think things should work, we can then write some experiments and that will allow us to figure out whether or not our theory is correct. So what we do is we make a prediction using our theory. We test that prediction using an experiment and we observe the outcome. And as we measure things from the experiment, we see whether or not they match their model. When things don't match, actually, that's when it gets really exciting. When things don't match, we know that our model is wrong. Put another way, we can't ever really know if we're right, but we can be very sure when we're wrong. Now, the nice thing is that when we find things that are wrong, when we find results that are inconsistent, we know that our theory is wrong. Reality can never be wrong. We know our theory must be wrong. Now, what we can do is we can use the new information we have gained from our observations and our experiment to refine our model and think about how the world works more closely. We can then take that model that we have created again and we can apply it one more time to figure out whether or not something should happen. We can run more experiments, we can do more refinement. And in this way, we iteratively work our way towards something really elegant and nice or perhaps just a good understanding of how something works. Let's take an example. There was this chap Newton who was once sitting underneath an apple tree and then he was cruelly assaulted by it. An apple fell on his head and the story goes that this is what allowed him to come up with a theory of gravity, a model of how the world works, how gravity works, how things are attracted to each other, a mechanistic model. And for a long time, that model actually was really good. It correctly matched observations. He made theories and experiments and those experiments matched the outcome that the model should have. It was brilliant. But there were problems. There were things that that model didn't explain and there were experiments that were quite hard to imagine. And then a long time after Newton died, this chap Einstein came along and he postulated a model that combined all manner of things into what's known as the general theory of relativity. This explained the mechanics of Newtonian physics, but also it suggested the existence of things like black holes and gravitational waves. These are fantastic because you can make experiments to figure out whether or not the world, the universe actually matches this theory. And it turns out that as far as we can see, Einstein isn't wrong. What we can take from this is that the early model that Newton proposed wasn't wrong. It was just that Einstein was more right. What on earth has this got to do with selenium? In my mind, and hopefully, as you can see as we go through this talk, we try and run selenium using the scientific method. You can think of selenium RC, selenium 1 as our initial guess, a theory or hypothesis, a model of how to do web testing. And over the years, what we did is we observed the usage and made some refinements and we ended up with WebDriver. This has been a very long process and, you know, it isn't over. It's never over. It continues. The process is ongoing and applies not only to the code, but how we run the project. With that in mind, I'd like to introduce David Burns. He's the maintainer of the Python Bindings, a member of the project TLC, co-editor of the WebDriver spec and chair of the W3Z Browser Tools and Testing Working Group. He's also a good friend of mine. So please, David, take it away. Thank you for the kind introduction, Simon. Hi everyone, my name is David and I head up the open source work at Browser Stack, primarily working on selenium. I've been with the project for over a decade now and I'm the co-editor of the WebDriver specification with Simon and I previously owned the Gecko driver project when I was at Mozilla. Today I'm going to be talking about the work the Selenium project is putting into diversity and inclusion to make it a safe space for everyone. In the past, we've always had the opinion that we must be excellent to each other and for the most part, this has worked. We have always been fortunate that we've never had any incidents but when we started to apply some scientific methods looking deeper into everything, it showed that we really needed to improve. We knew that we need to look at how we approach problems and what methods people could communicate with us if there was an issue. And when we started to look at this, we realized we had survivorship bias. Survivorship bias is the idea that we look at the people who survived our process and who could tell us what problems we had. Survivorship bias was used in World War II when people used to look at damage on planes that used to return. They would mark it all out and say, this is where we need to put more armor. Unfortunately, this is not where the armor really was needed and a statistician, a chap called Walt, described that we should be fixing and putting more armor where there are no holes. Because these are the areas where we can never look at the planes that aren't returning and those are the areas that have catastrophic failures. With this in mind, we have teamed up with Sage Sharp from Otter Technologies to help us make sure that we have inclusive policies within the project. These policies will extend to anything that uses the Selenium brand. These include the conference that you're at today, all the way down to local meetups. Anything that's using the brand and kind of could be seen as a Selenium event will be using these policies. We want to make sure that we have safe spaces for everyone so that we can lead to a place where everyone is inclusive, everyone is different and everyone is safe. We know we're not going to be perfect as nothing ever is, but by making sure that we put processes in place, we can always be improving them, tweaking them, making sure that we continue to maintain diversity and inclusion where possible. Of course, our efforts around safety and inclusion and diversity are a part of a bigger picture about how we run the project. To cover this in more detail, it gives me great pleasure to introduce Diego Molina. Thank you, David, for the introduction. Hi, everyone. This is Diego. I am part of the Technical Leadership Committee. I contribute actively to the Docker Selenium images, Selenium website and documentation, Selenium Grid, and recently to organization on topics such as the project governance. From its beginnings, the Selenium project has always been very open and welcoming. As a first approach, there were a set of known processes running the project in a simple way. A Project Leadership Committee was in charge of dealing with major administrative things in the project and also served as an interface with the software freedom conservancy. In addition, the process of becoming a Committer grew organically. So you needed to start contributing to the project and at some point an existing Committer would notice your contributions and ask if you wanted to join the project. Then an email to the Selenium developers was sent and everyone would reply with a plus one to express their approval. That approach worked, but we saw an opportunity to improve it. All these processes were, let's say, implicit and documented knowledge. We didn't have anything written or structured in a way that anyone could understand the process from outside the project. As the project kept growing and expanding, more people joined, but also some people left, and parts of that implicit and documented knowledge left with them. The work being done for the upcoming Selenium 4 release has been an opportunity to improve and refine the project not only technically, but also in an organizational way. Therefore, we are updating the project governance. We have been working on writing down how things should be run to keep this knowledge within the Selenium project and make it transparent for anyone who wants to join the project. We are doing all this because there are lots of possibilities in the future of the project. However, to get there, we need to have clear roles and responsibilities and a project that is still open and welcoming to everyone. To show you how we're doing this, let me share the structure of the project, its roles and responsibilities. Spoiler alert, you're also part of it. Let's start with the triage team. Over time, some community members have been helping the project to answer questions and identifying bugs. They are now part of the triage team, offering all their expertise and knowledge to all our users. Their role is to help charge issues and potentially submit pull requests with fixes or at least a failing test to help the committers recreate the issue. You will see them often replying to GitHub issues or helping the community in our IRC Slack channels. Another important role in the project is the committers and there is a defined team for them across all the Selenium projects. These are folks who have shown that they are committed to the continued development of the project through ongoing engagement with the community. They are the ones who can manage changes and make them into the code base and help any newcomer to land their code contributions to the project by reviewing pull requests and also triaging issues. We also have two committers in charge of governing and running major things in the project, the PLC and TLC. Let me explain what they do. The overall continuity and future of the project is overseen by the Project Leadership Committee, PLC, which acts as a bridge between Selenium and the Software Freedom Conservancy. Since there are many different facets to the Selenium project, the PLC wants to reflect more than just people who code, but rather the community as a whole. On the other hand, technical decisions and roadmap of the Selenium project are governed by a technical Leadership Committee, TLC, which is responsible for high-level technical guidance of the project. These two committees work actively to keep the Selenium project balanced and focused on the needs of the community. And the most important part of the structure is all of you, the community. Anyone can be part of the project. There are no special requirements. If you have done things like giving a talk about Selenium, raising awareness of the project and its benefits, maybe report it aback as a GitHub issue or a proposed new feature. If you have felt someone else to overcome a challenge while using Selenium, or maybe you have organized a Selenium meetup or collaborated in a Selenium conference, maybe you just have said thank you to the members of the project. You are already contributing to Selenium. Thank you. We have already some great achievements, like some new project members and establishment of a public project meeting every two weeks, where we discuss the ongoing project developments. But this is just the beginning, and we know there are many more good things to come, but we need your help and feedback to get there. I'm talking about feedback and help. Let me introduce Manoosh to you. He will share more details on how you can contribute to the project. Thank you for the introduction, Diego. Hey, folks, I hope you're all doing well and safe at home. I'm up next going to talk about the most commonly asked question to an open-tooth contributor. That is, how can I contribute? I'm going to share a few areas in Selenium project where you could come and contribute, which also may be relevant to the other projects as well. We all know that Simon is all getting us in the physics world very swiftly. Before we begin, I would like to share a quote by Sir Siviraman, the first Asian to have received a Nobel Prize in physics. He says, I am the master of my failure. If I never fail, how will I ever learn? Which greatly fits well within our theory on when things don't match, we know that our model is wrong. And we should always look at redefining our models and experiments and we reinvent ourselves for the betterment of life. Yes, the scientific method. So I would like to start off talking about the website itself, the face of the project, which, if you remember, this is how it used to look like early, the blueish one. We started out of the documentation on Selenium HQ ORG. Our original guess was based on a restructured format, the RST. Well, it worked well and served the purpose to an extent, but it wasn't friendly enough for someone who could come and contribute. And it coupled with other tech complexities as well. So we redefined and adopted a modern and a more friendly markup language called the McDon, which was good, and we had quite a few contributors coming up and contributing to the documentation. And we also applied the same thinking to the whole Selenium HQ website and the documentation in order for it to be now redefined with a newer look using a Hugo framework, unlike the old website which looked like a project was 50 years old. So documentation is an area where you could still come and contribute. Selenium.dev is the new home for the Selenium project. You could come and write a blog. Selenium HQ blog is now integrated with Selenium.dev. So something interesting that you have done with Selenium. You could come and look at the documentation and if there is any missing code pieces contribute code examples and samples. And most of the documentation if you see are written by a non-native English speakers. So that means if you are someone good at English and you contribute by proofreading and making some grammatical changes that will be of great help. And next if you see from a support perspective we all know Selenium is open source. It is by the community and for the community. The original guess was the support would happen through Google groups if you all remember we had Selenium users group and we also had the web driver mailing list where people would ask a question and someone would come and answer. I think one of the famous name that you could usually think of is Krishna and Mahadevan who used to pretty much answer every questions at one stage. I used to compete with him but then I lost the battle. He was so consistent in answering questions. But then to an extent people wanted a nicer and a more synchronous way of communication but then IRC was there which didn't serve the purpose well because it was mostly blocked by most of the companies that I know in India at least. So we observed and we looked at adopting and supporting the modern IRC called the Slack which is my way of saying which is actually mirrored so we have the IRC and Slack mirrored each other so it's a two way communication when someone pings an IRC it gets relayed on to Slack and the YC was as well and I believe it was supported by Titus who was instrumental in bringing this idea and supported by a few other committers which was really great and now we have Slack, IRC and the Google Groups medium and of course we have other forums like Stack Overflow so answer questions keep the Selenium community alive write how to guide if you look at the documentation getting started guide in Selenium 4 at least and you know how to start a grid with Selenium Alpha Jars it's something it's still missing so you could if you know something about it you could come and contribute and you can look at triaging issues as like any other projects there are many open open issues that are available in GitHub you could come and look at those triaging and helping us finding why an issue has been open for a long time it could be either the author has resolved himself but he's not responsive to update the thread and close it so you could follow up you could test a particular issue and see if that is reproducible and work with a committer in that way there is a pairing between you who's testing an issue and pairing with a committer so you could potentially become and we have many folks who came down that path and become a committer now which I'll share shortly but so these are a couple of areas that you could come and contribute and more from an events per se I think Selenium conference is an area that you could come and contribute and every year we get tons and tons of proposal so if you're someone who likes to ask questions about ideas and get and you could come and join the program committee Selenium conference happens every year, alternate years in India and the rest of the world every year I think the next one is in Chicago fall so you could come and contribute to that and of course if you are in the area where the next Selenium conference is like I said the next one is in Chicago if you are based in Chicago if you are someone who is local you could come and help and I know folks like Zachary Attas and Lydia Tripp who were locals and who helped us greatly in organizing our last conference and likewise in India we have Anand, Nareesh Sai Krishna, Srinivas and Pooja and a lot of other volunteers helping us run this show so this is again one of the areas that you could contribute and so these are some of the non-tech things of area where you could contribute to Selenium project and next is code hack code who doesn't love code everyone can code well three things coming to my mind you could write tests enhance our tests alpha you can do some alpha and beta tests for Selenium 4 you could do some help on the Javascript bindings that needs help and right now we don't have actively someone maintaining Javascript bindings so if you are someone who is good at Javascript you could come and help us there and I have made this code contributing code to the last thing purposefully because Selenium project is a space where we value contribution at every level someone who contributes to documentation is on the same level as someone who contributes to code so that is how we see as contributors and we celebrate new cometers that coming up that way and as Diego mentioned earlier on forming a governance way for the project and forming up the PLC and TLC way leading up to having a documentation team and a triage team as well and in that way we have found some new cometers unlike the last version of Selenium concept we had this time I am very happy and glad to introduce new cometers to the project starting off with Srihasha has been contributing heavily on the documentation he is also now contributing to Javascript bindings and earned a commit bit for Selenium as well and Rajendra from Browsestack been contributing heavily on the grid stuff Puja again from Browsestack has been contributing well on the observability and tracing aspect of Selenium grid some nice work there and Andrew has been there for the long time with the project helping the event space conference Selenium conference Chris has been very active in supporting any questions as in Slack I think he has been called as the Selmon mode if you are in a Slack and if you are wondering who is Selmon mode that is Chris he is here and welcome to the team folks we are very happy and glad to have you and this is an inspiration for most of you who is looking at it so contributing to code is not the only way to become a cometer but you can start small and then find your way up there and these folks are an example that we have in front that said step forward contribute to the Selenium project and make it better over to you Simon thank you Manoj and David and Diego and I would also like to add my congratulations to Shree, Andrew, Chris, Rajendra and Puja it is fantastic seeing so many new faces join the project and also seeing some old timers who have been with us for a long time be recognised for the valuable contributions they make the project wouldn't be anything without people like these so thank you very much so, yes the scientific method that is where we were so we can go all the way back in time to the very first version of Selenium this is a screenshot of one of the early releases of Selenium IDE we started out with Selenium Core with Selenium RC that was our initial guess that was our first theory and it worked and it was solid it was very much like Newtonian physics it solved a problem and it solved it well and it showed us that browser automation was a really useful and powerful tool but there were problems and one of those is that it was trapped in the JavaScript Sandbox and while that didn't matter much to begin with it would become a problem later you see in the time of Selenium RC it was unusual for pages to use much JavaScript at all quite often they would be a single page you'd fill out a form you'd hit the submit button the form would go all the way back to the survey it would render the response and send it back to you pages weren't very dynamic and that was fine it would allow you to type things in with JavaScript and you were done basically but then we had Web 2.0 and for me the first time where I had to really throw WebDriver the project that I'd started at this problem was when I was contacted by a team at Google now the first team that really put WebDriver through its paces was the Google Photos team but the second team was Google Wave and I worked quite closely with them and that forced us to push a lot of functionality into Selenium and into WebDriver that was a very rich web app I know that it wasn't terribly successful and I know nowadays it's a sort of footnote in history but at the time it was cutting edge it pushed browsers absolutely to the limit and one of the things that showed us is that the model of binding tightly to the browser was a good idea and it encouraged us to emulate user input ever more closely so we were trying desperately to be as close as we could to a sort of high fidelity user experience the other thing that we had observed with Selenium RC is that the initial API was considered by some to be very simple because it was incredibly flat but by others to be confusing and difficult to use because it was so large and parameters it wasn't always clear what you should be passing in so the other thing that we did is with WebDriver we took a look at how people used things and we came up with what we thought was a simpler API now don't forget this was right at the beginning of the sort of Web 2.0 era and so this seemed like a good fit we had a bunch of things that seemed to make a lot of sense and even to this day this API had stood the test of time it's still pretty easy to use it still allows us to do many of the things that we want to do and this is our refined guess browser automation should look the WebDriver APIs that we ship as part of Selenium but time doesn't stand still and the world continues to move on. The original model of WebDriver was one of request you know you would perform an action you would send it over to the browser to execute in its context and it would click or it would find an element and then the response would come back to you. But modern applications are actually far more active now they're doing things all the time firing events and so we need to refine our guess our theory once again based on the observations we've made and you know there are several that come out of this the sort of modern Web. So the first observation we made is that finding elements on a page is really difficult. I mean we wish it was simple we wish it was easy but it's not and you can see how difficult it is by seeing how many talks at Selenium Conf there are over the years that have tried to cover locator strategies how to make them robust how to make them strong. I know that when I work with teams quite often there are very sophisticated X paths that people have crafted carefully these things are very very fragile but they're what people need in order to find that one element you know I've seen people do amazing things with CSS locators as well it's fantastic but you know what there really has to be an easier way to do this now we are fortunate at this conference to have Narayan Raman who was the creator of Sahi talking and I really do suggest you go and attend his talk but one of the things that Sahi introduced the world it blazed a trail was locators based on human readable descriptors of where elements were on the page you don't say this element is located so far down the dome as a child of this and no no no what you do is you say oh you want the image that happens to be above this particular element or you want to say I'll have something that's left or to the right of it and so we've added something similar to Selenium 4 we call them relative locators back in the day we called them friendly locators because we thought they were nice and easy to use but I think actually relative describes what they do more closely and although the idea originated in Sahi you can find this in other browser automation frameworks as well, natively Gage from ThoughtWorks that is one of the ones that has it and Tyco as well I believe so yes we have added these relative locators and they're a great way of finding elements another observation we made and the thing that we heard very clearly is that people want to use their web test to be alerted to events happening on the page those events that might be happening might be something as simple as JavaScript errors people might want to go I want to fail the test if there are any JavaScript areas that are thrown on the page we move from a world where we have request response to one where we get events right if you call the JavaScript console API for example it'd be nice to know what was being called there the most popular of the other events that people want to listen down for other types of events are changes in the DOM you want to know when it's safe to continue your test and you want to know when something is finished happening and you want to be notified when things change now we could just pull for these changes and we did that with explicit weights you can do that right now you know it'd be nice if you could be notified if something changed right another observation we made is that people want information about network traffic the most issue in Selenium history was to do with returning status code to the page I was never really sure what that meant because a page is composed of so many different elements did they want me to add up all the status codes and divide by the number of requests to give you some sort of average status code or did they want the index.html status code or you know what did people want I never understood it but it is something that people want to do another thing that's happened particularly as people are moving toward a world of microservices and more distributed applications is people want to be able to stub out network traffic they want to allow themselves to test an application in isolation from potentially unstable back ends that's a really useful thing previously we've suggested people do this using proxies and those are easy to integrate with Selenium but you know people want more and finally another request we've heard a lot about has been in support for authenticating the browser with a web page again the solution we normally suggest to people is to use a proxy the browser mod proxy is one of them and Jim Evans has written a series of blog posts about how to integrate a proxy with your Selenium tests but you know people kind of like having everything be supplied in the same package for them to use at the same time. Authentication on a web page is typically done using basic or digest authentication it's where you go to the page and you get a little modal dialogue that pops up and when a user visits a page they have to type in the username and password typically that's what they need to do now you know if you didn't want to use a proxy one way that you used to be able to get around this was by crafting URLs carefully you could put an authentication section into a URL but more and more browsers these days don't make that an option we need to come up with a mechanism that allows you to support all of these features in your tests using web driver well I've some good news for you because in Selenium 4 all of these things are available let's have a quick look this is a demo that we have we've been working to make the APIs as intuitive as possible so here we go you can see here that we're testing relative locators we go to the internet by Dave Hefner we want to find an element and then we want to find below that an input element and below this anchor element that we selected so there you go what we'll do we'll highlight that element when we run the test and we'll just assert that it's selected the next thing we're going to do is listen out for some console events so again we go to the internet and there's this complicated looking piece of code here but don't worry about it too much all we're doing is looking out for a console event and when we see hello world we set a latch and that means that we can continue we then execute some JavaScript that calls console log and says hello world and we check that within 5 seconds that latch has been triggered so that piece of code has been passed the next thing we're going to do is we're going to stub out some network traffic so here's a request anything that looks for a logo and ends with SVG we are going to return a picture of a kitten yes you heard me right a picture of a kitten so what we're going to do we're going to go to duck duck go and we will find the logo and we will highlight the element once more and now we're going to show off authentication so we're going to authenticate using admin and admin as our username and password and I'm going to pause here just so you can see that we're going to the basic digest page and these are the username and password that we should type we're going to find the content and we're going to make sure it contains the string congratulations so let's run this here you go here is the internet you'll see actually it's a little bit further up basic and we've indicated that we found the correct thing this is the console log that's the checkbox using the relative locators and there we go duck duck go with a picture of a kitten and that's fantastic so there we go we've seen all the pieces fit together you can imagine how you could use those things in your own tests in order to make them more capable more flexible and do more and exciting things so how does all this extra functionality work? well currently most of it is based off the chrome debugging protocol this is the protocol that is spoken by browsers that are based on chromium that is largely chrome and microsoft edge that allows you to hook into various events that are happening within the browser but browser developers and others including members of the selenium team are working on a w3c spec extending web driver to allow it to also send events back to a waiting test this means that in the future browsers other than those based on chromium can take advantage of these features and that's going to be really important because one of the things that I think is not healthy for the open web is for there to be a browser monoculture that can't be good that also means because we're planning on having a web driver bydie specification that we have to be very careful to decouple how the new features work from the apis that they use now this is a major difference between selenium and some of the other testing tools out there such as puppeteer because what it allows us to do because we have that decoupling is that one version of selenium can support many different versions of chrome and edge at the same time without you needing to download a different version of the tool that you're using and that means that you can take your test you can pin your version of selenium and you can just pull in the versions of the cdp that you need to use for your tests and that makes everything a bit more robust and a bit more stable but you know we haven't just been working on the user facing apis that you know and hopefully love and selenium 4 doesn't stop there our original guess about how to distribute tests across a fleet of machines was a selenium grid now there are one version that was written that supported selenium rc alone and then the second version which is actually what we're using now which supports supported both selenium rc and the web driver protocol now that grid has stood the test of time remarkably well it's proved capable but like all things starting to show its age it's a bit long in the tooth what has changed when the original grid shipped none of these technologies existed that you see on this slide here there was no docker there was no kubernetes there was no azure there was no amazon web services and there was no google cloud platform gcp how we deploy grids on machines has changed radically when grid 2 first shipped what we would do is we would have a vmware instance or a series of actual physical machines in a rack room somewhere and these would be running the browsers nowadays we can deploy to the cloud or we can take advantage of selenium as a service providers such as source labs and browser stack how we do this has changed so much basically we want the selenium grid to cope with these new technologies now there are projects such as selenium which have enabled the original selenium grid to continue to work and to take advantage of these things but you know we could do better but only if we changed some of the design so in selenium 4 we're refining grid based on the observations we've seen if you went to the grid workshop yesterday you'll have had a taste of it we're designing it to be possible to scale using modern hardware and technologies and to support ever larger fleets of browsers because we know that's important to you we also know that teams such as AeroCube allow you to have very large grids as well we know this is something that people want and what we're doing in selenium 4 is we're refining grid to enable you to have those very large fleets based on modern technologies deployed in modern infrastructure it's going to be very exciting so the question that I get asked more than anything is when when will selenium 4 ship? the standard answer we give is that we're going to ship it before chinese new year but we then omit the year so we give ourselves a lot of time but the last major selenium release 3.14159 was in November 2018 it has been a while we're working hard on selenium 4 but we're not yet quite sure when to ship it the recent selenium 4 alpha are coming to an end I think the next one will be the last one and then we're going to start on the beaters those beaters should be relatively short we're going to be asking for feedback from people and we're trying to make it as solid and as capable as possible we're making nightly docker images available for you to start testing already if you want to try out grid if you just plan to use web driver on the client side in your tests the alphas should be a drop in upgrade and you should be able to use them right now if that's not the case if it's not a drop in upgrade please let us know we've worked really hard to ensure backwards compatibility but sometimes mistakes are made and things fall through the cracks if you let us know we can fix things so please try them out and give us some feedback that would be really good it will also give you the ability to try out some of the new features that we're that we're baking into selenium 4 which I hope you're kind of looking forward to for grid 4 if your fleet feeling brave please do give the alphas ago we're waiting to hear from you which features you really need before we ship 4.0 we know that there are gaps and we're working hard to close those so in order to answer the question when will selenium 4 be available all I can say is we have a pile of work to do and we're going through it as quickly as we could we'd really hoped it would all be done by now but we're working hard and it looks like we're in touching distance of the finishing line and I'm very excited about that of course once 4.0 ships we're going to be shifting our focus to selenium 5 what features will this bring I'm not exactly sure after selenium 4 I'll be stepping down as the project lead and the PLC and the TLC will be pulling even more weight than they do already this is one of the reasons why we're putting so much effort into making sure the governance of the project is strong and effective and clear we have the Slack and IRC channels where you can come and ask us for help and support so you know that would be a great place to come in and talk to us about things that you really wish selenium would do I suspect very much that the project will be focusing on making selenium more user friendly and polishing rough edges there are a handful of things where right now we suggest going to third party libraries and maybe we could find some way of just linking to those libraries and suggesting people use them or otherwise making it easier to pull down a sort of bundle of things that we know work together well as an example of a rough edge if you use chrome or edge or firefox you need to download the appropriate driver and that driver binary gecko driver microsoft edge driver chrome driver needs to be specific to the browser you're using so there's a lot to juggle and get right but you know the key thing here is selenium is an open source project if there's something you'd like to see in it just as Manoj said you should feel free to come and join us even a little bit of help goes a really really long way and we could do with all the help that we can find so finally with that I'd like to say thank you for your time and attention I'd like to say thank you to David, Diego and Manoj for their hard work helping prepare this presentation and I'd like to wish you all a great conference happy hacking folks and I hope you have a fantastic time thank you very much hi everyone thank you very much Simon thank you very much that was a great talk I think possibly this would have been in person this would have been my third time sharing a stage with you but nevertheless I did feel so and hopefully people caring from wherever well thank you very much for your help putting that all together it wouldn't have been possible without you and thank you everyone by the way for all the comments and the discussion that was going on in the background I really enjoyed that I think we may have actually answered all of the questions that's right I was just checking the Q&A panel thank you Simon for the multitasking as Diego mentioned it's multitasking at its peak alright with that thank you we hope to see you in the next Serenium Conference in Chicago until then thank you very much everyone enjoy the rest of the conference take care