Note: You are looking at a static snapshot of documentation related to Robot Framework automations. The most recent documentation is at https://robocorp.com/docs

Logging out and closing the browser

Taking out the trash

The process is now automated! Well done, you!

Let's still do some housekeeping and clean up after ourselves. Maria told us that after completing her task, she logs out and closes her browser. This might not come as a huge surprise for you anymore, but our robot can do this thing, too!

Let's add the next (last!) step, Log out and close the browser, to our task:

*** Tasks *** Insert the sales data for the week and export it as a PDF Open the intranet website Log in Download the Excel file Fill the form using the data from the Excel file Collect the results Export the table as a PDF Log out and close the browser

Then (you guessed it, right? 🙂) we add a new keyword:

*** Keywords *** Log out and close the browser

So, two things. Log out. Close the browser. You already know about the Click Button keyword, so let's go with that for the logout:

*** Keywords *** Log out and close the browser Click Button Log out

How do we close the browser? There's a keyword for that, too (thanks again, RPA.Browser.Selenium!)!:

*** Keywords *** Log out and close the browser Click Button Log out Close Browser

Done!?

Tearing things down

Almost. One more detail before the class is dismissed. We want to ensure that the logout and closing of the browser happens even if some part of our process fails and the robot fails to reach the end of the task. To do it, we use a special keyword: [Teardown] (the brackets are essential!).

Let's modify our *** Tasks *** section like this:

*** Tasks *** Insert the sales data for the week and export it as a PDF Open the intranet website Log in Download the Excel file Fill the form using the data from the Excel file Collect the results Export the table as a PDF [Teardown] Log out and close the browser

What if we decided to leave out the [Teardown]? In that case, the logout and closing of the browser would not happen if one of our keywords happened to fail during execution. Using the [Teardown] keyword and giving our keyword as the argument, we ensure that no matter what, at least the cleanup step always happens. Neat!

It is done!

Our finished robot now looks like this:

*** Settings *** Documentation Insert the sales data for the week and export it as a PDF. Library RPA.Browser.Selenium auto_close=${FALSE} Library RPA.Excel.Files Library RPA.HTTP Library RPA.PDF *** Tasks *** Insert the sales data for the week and export it as a PDF Open the intranet website Log in Download the Excel file Fill the form using the data from the Excel file Collect the results Export the table as a PDF [Teardown] Log out and close the browser *** Keywords *** Open the intranet website Open Available Browser https://robotsparebinindustries.com/ Log in Input Text username maria Input Password password thoushallnotpass Submit Form Wait Until Page Contains Element id:sales-form Download the Excel file Download https://robotsparebinindustries.com/SalesData.xlsx overwrite=True Fill and submit the form for one person [Arguments] ${sales_rep} Input Text firstname ${sales_rep}[First Name] Input Text lastname ${sales_rep}[Last Name] Input Text salesresult ${sales_rep}[Sales] Select From List By Value salestarget ${sales_rep}[Sales Target] Click Button Submit Fill the form using the data from the Excel file Open Workbook SalesData.xlsx ${sales_reps}= Read Worksheet As Table header=True Close Workbook FOR ${sales_rep} IN @{sales_reps} Fill and submit the form for one person ${sales_rep} END Collect the results Screenshot css:div.sales-summary ${OUTPUT_DIR}${/}sales_summary.png Export the table as a PDF Wait Until Element Is Visible id:sales-results ${sales_results_html}= Get Element Attribute id:sales-results outerHTML Html To Pdf ${sales_results_html} ${OUTPUT_DIR}${/}sales_results.pdf Log out and close the browser Click Button Log out Close Browser

If we run it, we will see that it logs out and closes the browser at the end. Such a polite robot!

What we learned

  • The [Teardown] keyword ensures your process does not leave a mess behind. Such as an open browser.