 All right, we're going to work on the Selenium test failure now. So Selenium is our integration testing framework, which means it very commonly tests both back end stuff and front end stuff, which means that debugging it or navigating it can be sometimes hard, since the problem could be in a multitude of places. But I know you can do it. The first thing that we want to do is share my screen. And then the second thing that we want to do is go and look at the failure on GitHub. So we can click here, we see Selenium test. There are going to be actually a couple places where you're going to see Selenium test. So you're going to see one somewhere here. If you scroll down, you'll see another one and you'll see a third one. There are three different types of Selenium test failures. So you can see that when we go over here to Artifacts. And if we click into the Artifacts, we can download the Artifacts and then really see, okay, what test is failing. So we've got test build list and show items is failing. That we found on the zero one. If we download this one is one, we can see that test upload pair and specify extension is failing. So we're going to want to make sure that we're in the Galaxy route. You're probably coming right from the unit test where you were in the CD that when you were in the, you were in the client directory. You're going to want to CD out of that if you haven't already. And we're going to want to find out where these tests live. So let's go do that first. Let's go to BS code and I already have the answers up. Here in test collection builders up high. We can see that test build paired test build list and show items lives here. And in test upload, you can see a test test upload list. Is that the other failure? Test upload pair, specify extension is failing. So test upload pair and specify extension. And if we look at these two tests, we might get a clue as to what is going on. We can see that this one is definitely building a list. And we can see that in test uploads. We're also uploading a list. So a good clue might be to look at the list collection creator. Don't ask me. I'll show you. Of course, what we're going to do next is run the tests locally. So we know where the tests are defined. They're in these two Python files. And you need to have the file location, not just the name of the test to run it locally. And this is a command that you can use to run a Selenium test. Except we want to change this file name to the actual files where we find the failing tests. I'm going to move just a little bit forward to save us some time. And I'm going to tell you that the first thing that we're going to do before we run the test locally. Is we are going to export this line here export galaxy test Selenium headless equal to false. This is important. And it's going to be really good for us. What this is going to do is while the test the Selenium tests are running. We'll get to see the headless browser walk through each step. And that might give us a really, really big clue as to why it isn't working the way it's expected. Of course, it's going to save us a bunch of time. So it really doesn't matter which one of these you run, they're both going to do different things. So if you choose a different one than I'm choosing, you're going to see that headless browser do something different. But I'm going to run this one. And we're really only interested in that first test case, even though we're running all of the test cases in this. In this Selenium test suite, we're running all of the test cases, but the only one that failed is this test build list and show items so. That's what we should expect to find, but we should also be watching for the test running. Basically, when you're running Selenium tests like this, they are building and starting Galaxy. So however long it takes Galaxy to run on your machine, it might take about that long to get through that beginning part. And then there's also the running of the test. So here's the test screen and I'm not doing any of this. This is the test doing it. So let's pay attention to what it does. Here's the uploading data. One step faster. Okay. We're going to watch that turn to green. And then we're going to create a list with it. And now nothing's happening. We saw the list be created. But nothing has changed. It might be that this is the step that is broken. And that is the fact that is the truth. So what I'm going to do, because there's other test cases, I'm going to pause here. I'm going to stop sharing and pause my recording and I'll be back with you in a minute as those other test cases run. All right, I'm back. At this point, my test is finished running. And you can see that we have one failed test case and five passing ones and the failed one is test build list and show items, which is what we expected from GitHub. All right. So I already walked you through this very special how to run the Chrome has this browser so you can see it. And I'm not yet. Now we get to find out what the problem is. So as we might have to do is from looking at the tests and from watching the test run, there's a problem with the list collection creator. So this is the less collection creator. I'm going to go to the, the one that I ran with you guys and see what the problem is. So watch the test walk through created the list is put the list there. Right, let's create. And the only thing left to do in this test was wait for hid three. If you remember and you can back up the video if you need to to see what the Chrome have this browser did. We did not see a number three we had a number two, and number one disappeared. Very interesting. You guys want to take some time you can pause right here. I'll give you a few seconds here to click the pause button to look through this view component and see if you can figure out where the problem might be. Why would the test expect to see number three. But it is only seeing number two, let you pause. All right. If you're still here, that means you're ready to see the answer. So the problem lies right here. It's in this hide source items, I have flipped the Boolean to negate hiding the source items. So if we look at the just to compare it to another collection creator if we look at the pair collection creator we can see that hide source items is set to true, and that's really what we want for this collection creator as well. I'm going to save that. After I save that we now have the solution. We are going to rerun the test locally. So here I go I'm just going to click up and run it again, and we're going to get to watch it complete. We're going to hold on one moment. Now that I re-exported my Selenium browser I see things happen. We're going to rerun it. And now we're going to get to see the test complete successfully. We're going to see the headless browser step through it and see that the collection is HIG three. This takes a little bit of time. Not too much time. Depending on what you've got going on, what kind of setup you have, what else is running on your computer, it can take some time. We've got zoom running right now to record this and it's making things run a little bit slower than usual, but ultimately it's fine. Maybe in just a minute. I don't know why it's taking longer than it did five seconds ago. It seems like five seconds ago, maybe, although of course I paused it. I guess I could just broadly talk about I'll let this run and then I'll tell you something else about Selenium test. So we're going to see the headless browser pops up in just a second here. Logs in. So everything that it did last time looks with data. We see the data get uploaded successfully and then we're going to turn that into a list of just one item. And did you see that it passed? You can see that it passed very briefly for just a second there though. You could see that it was number three because the hidden items. Problem is fixed. I want to direct you to do something else that is, I think, important to know when working with the Root Galaxy. I open another terminal window because I still have the one name test running over here. I'm going to go to CD, change directories into database, test errors, and then display them. So you can see that I've run a lot or maybe just a lot of the same Selenium tests. This is where you will get Selenium tests output put and it can really also define something if you guys think this is helpful. Let me know in Slack or wherever and I can add it to the tutorial. I didn't think to do it initially, but while I'm waiting for those Selenium tests to run, I might as well show you something else. So if we change directory into this test, which is one that we just ran, you can see the date. No, not today. That's a lie. Up here you can see that we ran test build simple list, test build list, and show items. This one here. And we'll be able to see that run. So I'm going to change directory into this fail test. And if I list everything that's in there, you can see browser output, you can see some logs, you can see a stack trace, and you can see the last picture. And you can open all this stuff by just typing code. And it'll open that up in VS code if that's what you use. So sometimes looking at this stuff can be really helpful. One thing that I always do is check out this last, this last image, especially if I didn't run it with a cool with a, with the headless browser. So I can see that, like we talked about before when we saw the failure, that number two, this is number two, and it really, we were expecting it to be the third item in the history. You can also check out the stack trace, which will tell you that there was a timeout exception in wait for HID visible. So hopefully doing that will be helpful for you. So again, I just want to show you that path it's database testers and then you find the test that failed recently and you can see all of that information. With that. It seems that our Selenium test is done running. We have six past test cases, which is good. That's what we want. What we have to do is write our commit message. And we're done. Selenium test. So I'm going to say get status that brings up the file that I recently changed. Get add this file. Get dash and reverted hide source items to true instead of maybe that's not even quite true. Get status items to original or something along the line. Again, look at the get committer guide to writing the, the galaxy contributors guide for details on how to write a good commit message. And with that, you're done. Selenium tests are in the bag. Thank you.