Blue Prism Modern Browser Automation 1. Introduction i This training course will provide a complete overview of the automation of web-based applications and pages presented through a modern browser, and automated using Blue Prism. The course will take you through the necessary configuration steps, demonstrate how to launch and attach to a session, and offer some useful tips and techniques for the interaction with elements within the browser window. v1.01 (2020) © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism Modern Browser Automation Version Notification ▪ This training course was developed using Blue Prism version 6.8 and the browser extension 2.1.0. ▪ Several improvements have been added to Blue Prism version 6.9 and the Blue Prism browser extension version 2.2.1, which will not be referenced in the main content of this training course. The main content of this training course remains valid. ▪ Information about these improvements are provided in the V6.9+ Training Addendum at the end of this course. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 2 Blue Prism Modern Browser Automation 1 Introduction Many business applications and information pages are accessed by a user through a web browser window. Historically, Blue Prism provided the ability through the HTML spy mode in Application Modeller, to automate web applications and pages which were accessed through Internet Explorer. Integration support was provided for other web browsers through different spy modes; however, this was often less successful or faced challenges with performance issues. As Internet Explorer is approaching end-of-life support, it was important for Blue Prism to provide the ability to interact with modern browsers such as Google Chrome, Mozilla Firefox and Microsoft Edge, and for Developers to gain experience in automating these browsers. Support for Google Chrome, Mozilla Firefox and Microsoft Edge (Chromium version) automation using a web-based spy mode in now available in Blue Prism (support is version dependent). This training course will take you through any relevant browser configuration steps, demonstrate how to Launch and Attach to a browser, how to interact with a selection of browser elements, and finally, some optional advanced techniques. You can use your choice of modern browser throughout this training, as integration with each of these browsers is achieved in the same way. As configuration steps for each browser vary slightly, each will be covered separately in section 2.1 of this training course. You only need to complete the section in 2.1 which is relevant to the modern browser which you have selected. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 3 Blue Prism Modern Browser Automation 1.1 Introduction: Prerequisites The following prerequisites have been identified for this training course: • You have completed of Blue Prism Foundation Training including the Consolidation Exercise • You have a login for your local Blue Prism training environment and a valid Blue Prism license • You have a compatible version of Blue Prism and supported modern browser installed. • You have access / permissions to install browser extensions. i • Section 1.3 will provide information to help you to identify which version of Blue Prism you have installed, and how to check that your choice of modern browser is a supported version. Blue Prism upgrade steps will also be provided should you need to upgrade. • If your training environment has been setup by your IT team, or you do not have permissions to install new programs on your device, then you will need to contact your IT support team for assistance with your environment setup (if any upgrade is required). © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 4 Blue Prism Modern Browser Automation 1.2 Introduction: Learning Objectives On completion of the Blue Prism Modern Browser Automation training course, you will: • Understand how to launch a new browser session or attach to an existing session of a supported browser from Blue Prism Object Studio • Be familiar with the Blue Prism Browser spy mode and how to use it when automating Google Chrome, Mozilla Firefox and Microsoft Edge (Chromium) • Have spied and interacted with various browser elements using the Browser spy mode • Understand when to use the Browser spy mode and when you should use a combination of spy modes © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 5 Blue Prism Modern Browser Automation 1.3 Introduction: Version Compatibility The table below shows which Blue Prism versions provide the ability to integrate with modern browsers using the Browser Spy mode, and the version of the browser used to evaluate version support. TODO Blue Prism Version Chrome Version Evaluated Edge Version Evaluated Firefox Version Evaluated 6.8.0 81.0.4044.138 83.0.478.37 76.0 6.7.1 80.0.3987.106 - 73.0.1 6.7.0 80.0.3987.106 - 6.6.0 76.0.3809.132 - 67.0 / 68.0 6.5.1 75.0.3770.142 - 67.0 / 68.0 6.5.0 73.0.3683.103 - 66.0.3 6.4.2 72.0.3626.109 - 65.0.1 6.4.1 71.0.3626.81 - 64.0.2 6.4.0 68.x to 71.x - - 6.3.0 68.x to 71.x - - 73.0.1 © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 6 Blue Prism Modern Browser Automation 1.4 Introduction: Identify / Update Blue Prism Version Launch Blue Prism and click the ‘?’ to reveal the Help menu. Select the About menu item. Refer to section 1.3; if your Blue Prism version does not support your chosen browser, then you will need to upgrade. See steps 3 – 12 for assistance on upgrading Blue Prism. Open a browser and navigate to the Blue Prism Digital Exchange https://digitalexchange.blueprism.com/ Click Login and then sign in using your normal portal account. Using the Search bar, search for Learning Edition. Click Find out more. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 7 Blue Prism Modern Browser Automation 1.4 Introduction: Identify / Update Blue Prism Version Click Get Learning Edition. Compete the required fields (*) on the form and click Submit. You will then receive an email (this could take up to 24 hours) with further instructions on how to install the Blue Prism Learning Edition. Use the Download Blue Prism link in the email to download the latest version of Blue Prism Learning Edition. Click Download (X64) 64-Bit to start downloading Blue Prism Learning Edition (V6.8+) Click Run and then follow the on screen instructions. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 8 Blue Prism Modern Browser Automation 1.5 Introduction: Checking your Modern Browser Version Is Supported • Sections 1.5.1, 1.5.2 and 1.5.3 provide the steps to check if your browser is supported by Blue Prism. You only need to review the section which is relevant to your browser choice. • Use information in section 1.3 to identify if your browser installation is supported • Browser software updates are available from the software providers 1.5.1 Introduction: Identify Google Chrome Version (optional) Launch Google Chrome and click the three dots to open the browser menu and select the Settings option. Click About Chrome. Verify your installed version is supported by Blue Prism. If not, then you will need to upgrade Google Chrome to continue with training. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 9 Blue Prism Modern Browser Automation 1.5.2 Introduction: Identify Mozilla Firefox Version (optional) Launch Mozilla Firefox and click the burger icon to open the browser menu and select the Help option. Select About Firefox from the linked menu. Verify your installed version is supported by Blue Prism. If not, then you will need to upgrade Mozilla Firefox to continue. 1.5.3 Introduction: Identify Microsoft Edge Version (optional) Launch Microsoft Edge and click the three dots to open the browser menu. Select the Settings menu item. Click About Microsoft Edge. Verify your installed version is Chromium and is supported by Blue Prism. If not, then you will need to upgrade Microsoft Edge to continue. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 10 Blue Prism Modern Browser Automation 2. Blue Prism Browser Extension i This section will introduce the Blue Prism Browser extension which can be used for Blue Prism integration with modern browsers such as Google Chrome, Mozilla Firefox and Microsoft Edge. Information in this section will help with installing the Blue Prism browser extension in your local training environment, for the browser of your choice. v1.01 (2020) © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism Modern Browser Automation 2 Blue Prism Extension: General Overview • Native support for automating web pages and applications which are accessed through a modern web browser is provided in Blue Prism® using the Blue Prism browser extension. • The extension enables Blue Prism to interact with web pages and applications presented in Google Chrome, Mozilla Firefox and Microsoft Edge (Chromium). This interaction is made possible through Application Modeller using the Browser spy mode, which works in a similar way to how the HTML spy mode works with Internet Explorer. • The Blue Prism browser extension establishes a connection between Blue Prism and the browser, enabling Blue Prism to interact with web pages and applications so data can be exchanged, and elements manipulated. • Browser spy mode will generally offer the best integration performance with modern browsers; however, other spy modes are available to automate these browsers if required. i • See section 1.3 for a list of Blue Prism browser extension supported versions. • Automation of older versions of Google Chrome, Mozilla Firefox and Microsoft Edge which are not supported using the browser extension, can be automated using the Active Accessibility and the UI Automation spy modes. • Automation of Internet Explorer is still achieved using the HTML spy mode; however Internet Explorer is approaching end of life according to Microsoft. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 12 Blue Prism Modern Browser Automation 2.1 Blue Prism Extension: Blue Prism Extension Installation • The Blue Prism browser extension should be installed on all Digital Workers and Interactive Clients, that will be used to configure and automate processes using one of the supported browsers. • Your IT team maybe responsible for the installation of the Blue Prism Browser extension on all Digital Workers. • The instructions on the following slides will help you with the installation of the browser extension in your local training environment and must be completed before you can continue with this training. • You only need to install the extension for the browser which you have chosen to use for this training. • If you do not have permission to install browser extensions in your local training environment, you will need to make a request to your IT team. i • At the time of writing this training, the Blue Prism browser extension for Microsoft Edge was not available on the Microsoft store, therefore, it will be installed through the Chrome store. This is perfectly safe; the extension will be added to the Microsoft store shortly. • If you are installing Blue Prism V6.9.0 or above, the browser extensions can be installed using the normal Blue Prism installer. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 13 Blue Prism Modern Browser Automation 2.1.1 Blue Prism Extension: Google Chrome Extension Installation (optional) Launch Google Chrome (you may need to use the ‘Run as administrator’ option). Once opened, click the three dots to open the browser menu. Select More tools -> Extensions from the menu items. Once the Extensions page has opened, slide the Developer mode to the On position. If you see the Blue Prism Browser extension installed and it is a supported version, then you can exit this module, otherwise move to step 4. Click the Extensions burger menu, followed by the Open Chrome Web Store option. Once the Chrome Web Store has opened, search for Blue Prism Browser. Locate the Blue Prism Browser Extension in the search results and then click the Add to Chrome button. Click Add extension when the prompt appears. A confirmation message will be displayed once the extension has been installed. You can now close Google Chrome. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 14 Blue Prism Modern Browser Automation 2.1.2 Blue Prism Extension: Mozilla Firefox Extension Installation (optional) Launch Mozilla Firefox (you may need to use the ‘Run as administrator’ option). Once opened, click the burger icon to open the browser menu. Select Add-Ons from the menu items. If you see the Blue Prism Browser extension installed, and it is a supported version, then you can exit this module, otherwise move to step 3. Click on the Settings icon, and select Install AddOn From File… from the menu options. Navigate to the Blue Prism install folder. Locate and select file FirefoxPlugin.xpi and click Open. If the file cannot be found, you will need to run the Blue Prism installer again to create the plugin file before proceeding. From the confirmation message, click the Add button. Click Okay, Got it from the confirmation message window, and then close Firefox. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 15 Blue Prism Modern Browser Automation 2.1.3 Blue Prism Extension: Microsoft Edge Extension Installation (optional) Launch Microsoft Edge (you may need to use the ‘Run as administrator’ option). Once opened, click the three dots to open the browser menu. Select Extensions from the menu items. Slide the Developer mode to the On position. This must remain On to use the Browser Extension. Slide the Allow extensions from other stores to the On position. If a warning message appears, click the Allow button. Click the Chrome Web Store link. Input Blue Prism Browser in the Search Extensions area and press Enter. Click the Add to Chrome button. Note, you can only add extensions from the Chrome Web Store to Microsoft Edge Chromium version (Jan 2020). Click Add extension when the prompt appears. A confirmation message will be displayed once the extension has been installed. You can now close Microsoft Edge. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 16 Blue Prism Modern Browser Automation 3. Session Initialization i In this section you will learn about creating an Application Model which will be used to form a connection with your chosen modern browser. You will then look at using this Application Model in an Object Diagram to Launch a session of the browser and also Attach to an existing session. Finally, you will take a look at alternative approach to launching a browser session which can be used when experiencing issues with the standard launch approach. v1.01 (2020) © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism Modern Browser Automation 3 Session Initialization Browser session initialization from Blue Prism is handled in the same way as with other types of applications; through Application Modeller in Object Studio. The following slides will look at creating an Application Model which will then be used to Launch a new session of your browser, or to Attach to an existing browser session. You will be using the BP Travel web application throughout this training which can be accessed using the following address: http://bptravel.blueprism.com. 3.1 Session Initialization: Application Modeller Wizard Exercise 1: Creating a new Application Model Create a new Business Object and name it BP Travel – Basic Actions Open the new Business Object and click the Application Modeller button, followed by Next >. Select the Browser-based Application (Chrome, Firefox or Edge Chromium) option and then click Next >. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 18 Blue Prism Modern Browser Automation 3.1 Session Initialization: Application Modeller Wizard Select the A browser that is launched from an executable file option, followed by Next >. Click Browse and navigate to the browser install folder. Select the browser executable (*.exe) and click Open. See next slide for further information on installation folders and browser *.exe names. The path to your chosen browser executable will be returned. Now click Next >. Input the URL for the BP Travel application, which is http://bptravel.blueprism.com and then click Next >. Click Next > and then Finish. Application Modeller window will now be displayed. Click Launch to test your Application Model. BP Travel should load in your browser. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 19 Blue Prism Modern Browser Automation 3.1 Session Initialization: Application Modeller Wizard The table below contains the standard installation paths for each of the supported modern browsers, and the browser executable name. This information is required when configuring your Business Object Application Model. Browser Name Standard Install Folder Browser *.exe Name Google Chrome C:\Program Files (x86)\Google\Chrome\Application chrome.exe Mozilla Firefox C:\Program Files\Mozilla Firefox firefox.exe Microsoft Edge C:\Program Files (x86)\Microsoft\Edge\Application msedge.exe Exercise 1: Recap The steps you have completed in Exercise 1 have created a basic Blue Prism Application Model which: • Launches your modern browser and creates a connection between Blue Prism and the browser session. • Navigates the browser window to BP Travel. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 20 Blue Prism Modern Browser Automation 3.2 Session Initialization: Launching a Browser Session in Blue Prism Now you have created a basic Application Model for your browser, you will review how to Launch your chosen browser from an Object Diagram, and look at the options or inputs available in the Launch Action. A standard Blue Prism Navigate Stage is used in an Object diagram to Launch a browser. The Launch Action which is available in the Navigate stage is used to launch a session of the browser. Blue Prism Navigate Stage The Launch Action will be made available in the Action dropdown once you have dragged the very top Application Explorer tree view item onto the Actions Element column. A number Action Inputs are available for the Launch Action: Blue Prism Navigate Stage – Properties Window with Launch Action configured These Inputs are explored on the next slide. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 21 Blue Prism Modern Browser Automation 3.2 Session Initialization: Launching a Browser Session in Blue Prism Launch Action Inputs: Path Input • • • The Path Input can be used by your Object Diagram to pass the browser executable file path to your Application Model at run-time. Any value provided using the Path Input will override the existing path configured earlier in Application Modeller. This option is useful if your Development, Test or Production environments are not aligned (different installation paths for the program being launched), as your Process can provide the relevant environment information using an Environment Variable. CommandLineParams Input • • The CommandLineParams Input provides the ability to pass values or predefined flags to the target program during the launch of a program. These flags will influence the behaviour or appearance of the target program. A quick internet search will provide a full list of valid Command Lines for the target program. ProcessMode Input • The ProcessMode Input is not compatible with the Blue Prism Browser extension. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 22 Blue Prism Modern Browser Automation 3.2 Session Initialization: Launching a Browser Session in Blue Prism Exercise 2: Create a Launch Action Open your BP Travel – Basic Actions Business Object and rename Action1 to Launch. Add a Navigate Stage and configure the Launch Action. Link the stages and save your changes. Exercise 2: Recap Now Step through your Action to test that it launches BP Travel in your chosen browser. Once you have completed your testing, close your browser session and Reset your Action. From your basic Application Model, you can now: • Launch the browser from within your Action Diagram and create a connection between Blue Prism and the browser session. Also, you can navigate the browser window to BP Travel. i Your Launch Action should have resilience built into the diagram to verify that Blue Prism successfully launched the browser, and that the expected page is displayed. For the purpose of this exercise, you will just create the basic Launch Action and add resilience later. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 23 Blue Prism Modern Browser Automation 3.3 Session Initialization: Attaching to a Browser Session in Blue Prism As with other applications which you have automated using Blue Prism, you may need to Attach an Object to an existing session of your browser. This is done in the usual way through an Attach Action in a Navigate Stage. Blue Prism Navigate Stage The Application Model you created earlier to launch your browser can also be used to attach to a running session. You can attach unlimited additional Business Objects to an existing session of your browser, in the same way you can with other applications when using the multiple Business Object design approach. You use the Navigate Stage Attach Action to attach or connect to an existing session of the browser. The Attach Action will be made available in the Action dropdown once you have dragged the very top Application Explorer tree view item onto the Actions Element column. A number Action inputs are available for the Attach Action; some of which have been used in the illustration on the right. Some of these inputs are key in establishing a connection with an existing session of the browser, and you will explore these key inputs on the following slides. Blue Prism Navigate Stage – Properties Window with Attach Action configured © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 24 Blue Prism Modern Browser Automation 3.3 Session Initialization: Attaching to a Browser Session in Blue Prism Windows Titles (as Collection) You can use the Windows Titles (as Collection) Input to supply the Attach Action with a Collection of possible window titles to use to identify the correct application window to attach to. The Attach Action will use the values in the Collection rows to search for a matching window. This is very useful if multiple window titles are presented by the browser application. The illustration below shows the BP Travel application has 3 possible window titles; the current window title is BP Travel – Create Quote. The Attach Action will use the values in the Window Titles Collection to identify which window is present and attach to this. Notice in the illustration that the Wildcard (*) symbol has been appended to each possible window title! This will be explained later. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 25 Blue Prism Modern Browser Automation 3.3 Session Initialization: Attaching to a Browser Session in Blue Prism Window Title Similar to how we illustrated attaching to a session of Microsoft Edge using the Windows Titles (Collection), if we know the window title will always be presented as the same value when attempting to attach, then we can use the Window Title input to provide a single window title to use in the Attach Action. The illustration below shows the BP Travel application has a window title of BP Travel – Create Quote. The Attach Action will use the values in the Window Title Data Item to identify the correct window to attach to. Wildcard (*) symbol usage with the Window Title Input will be explained on the final slide of this section! © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 26 Blue Prism Modern Browser Automation 3.3 Session Initialization: Attaching to a Browser Session in Blue Prism Process Name The Process Name Input should be used to Attach a Business Object to the application and should contain the Windows process name associated with the application. You can find this process name through the Details tab in Windows Task Manager. Looking up the browser process name in Windows Task Manager i As a general rule when attaching to a browser session, you should always use a combination of the Process Name and Windows Title (Collection) or Process Name and Windows Title inputs. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 27 Blue Prism Modern Browser Automation 3.3 Session Initialization: Attaching to a Browser Session in Blue Prism Wildcards Standard Blue Prism Wildcard symbols can be used when attaching to a browser session using the Window Title or Windows Titles (Collection) inputs. Blue Prism Wildcards symbols are: • * (the asterisk symbol) matches against a wildcard expression in which * represents any or no characters. • ? (the question mark symbol) matches against a wildcard expression in which ? matches any single character. • # (the hash symbol) matches against a wildcard expression in which # matches any single number. Wildcards will assist you in attaching to browser sessions, because the application appends additional information to the Window Title which is not visible in the tab name. This additional information can be viewed through Windows Task Manager, however, to save time, you can simply append the * (asterisk symbol) to the tab name provided in the inputs. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 28 Blue Prism Modern Browser Automation 3.3 Session Initialization: Attaching to a Browser Session in Blue Prism Exercise 3: Create an Attach Action Open your BP Travel – Basic Actions Business Object and add a new Action named Attach. Add a Navigate stage and link up the stages. Run your Launch Action and then press Reset followed by Detach to disconnect the Object from the browser. Open the Navigate stage properties and configure an Attach action using, the Windows Title and the Process Name inputs to Attach to BP Travel Log In page. Now run your Attach Action to confirm the connection to BP Travel Log In page. Your Attach Action should be similar to this illustration. Save your changes. Add resilience to your Attach Action, to check if the Object is already attached to BP Travel before attaching. Save your changes. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 29 Blue Prism Modern Browser Automation 3.3 Session Initialization: Attaching to a Browser Session in Blue Prism Exercise 3: Recap Your basic Application Model can now: • Using the Process Name and Window Title Inputs, your Action diagram can now Attach to an existing session of BP Travel application. 3.4 Session Initialization: Launching via Process Name You should be able to launch web applications and pages in your browser in the same way you do with any other application type; through a Navigate stage. If you experience problems using this standard approach, you should be aware that sometimes web applications need to be launched directly by the browser, and then Blue Prism can be attached to this window. You can achieve this by using the Blue Prism Utility – Environment, utility Business Object. This Business Object contains an Action named Start Process, which can be used to launch the browser application. The Action also offers the ability to start the browser with input values which can influence how it is launched – these are known as command line arguments and can be use these to provide the web page address. The illustration on the next slide, demonstrates using the Start Process Action to launch a browser session, and then navigate to BP Travel using the Arguments Input to provide the web page address. Once launched, the Business Object is not Attached to the browser session, therefore, you also need to run your Attach Action to connect to the session. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 30 Blue Prism Modern Browser Automation 3.4 Session Initialization: Launching via Process Name Example of using the Start Process action to launch the BP Travel session © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 31 Blue Prism Modern Browser Automation 4. Integrating with the Browser i In this section you will learn about the different Blue Prism spy modes available when automating web applications and pages through a browser. You will then learn how to switch between the different spy modes, and review some general guidance around spy mode selection. Finally, you will look at how to overcome problems when spying with the Browser spy mode. v1.01 (2020) © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism Modern Browser Automation 4 Integrating with the Browser: Spying Modes There are 4 spy modes made available for browser integration: • Win 32 Mode will enable integration with the main browser window and window controls, but not any elements within the web application or page itself. • Browser Mode will recognize the HTML elements within the web application or page, but not the outer window or window controls. • UI Automation Mode works well with most modern Windows or Browser applications and is capable of integration with windows and window controls, as well as elements contained within the applications. • Region Mode is available for performing Surface Automation should the Browser Mode and UI Automation mode not be compatible with the browser application or page. i Sometimes, it is logical to use a mixture of the available spy modes when you are building your element tree in Application Modeller – this is perfectly acceptable. If you are using more than one spy in the same Application Model, it can be convenient to name your elements with suffixes indicating which mode was used to spy them, such as “Alert Message (WIN32)”. In a large application model it would be practical to leave your HTML elements unmarked, and only apply suffixes to elements spied in Win32 or UIA modes. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 33 Blue Prism Modern Browser Automation 4.1 Integrating with the Browser: How to decide which spy mode to use? When selecting which spy mode to use when working with a web application or page through a browser, there is no clear defined rule. You should use the spy mode which provides the greatest integration success with the best performance in terms of speed and resources. As a guidance note, when working with HTML elements within a web application or page, Browser Mode should be your first choice of spy mode, as it was designed for HTML elements and therefore is robust in integrating with these elements. 4.2 Integrating with the Browser: Switching Between Spy Modes Switching Application Modeller spy modes when integrating with a browser works in the same way as with any other application type. When you have clicked the Identify button in Application Modeller, you can use the [Alt] key to toggle between the available spy modes for that application or element type. The default spy mode will be presented first and is determined by the type of application or element you are attempting to spy. You will notice that when spying a web application or page, the Browser Mode will be the default selection. The current selected spy mode is clearly identifiable; look out for the floating information boxes as displayed below: Blue Prism Spy Mode floating identifier © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 34 Blue Prism Modern Browser Automation 4.3 Integrating with the Browser: Problems spying with Browser Spy Mode Attaching to a browser session which wasn’t launched by the same Blue Prism Business Object or was launched outside of Blue Prism is possible, but only when the System Setting Use fixed browser extension port (31924) only, is enabled. This is because the Blue Prism Browser extension needs to know which port to use to communicate with Blue Prism through. When using Blue Prism to launch the browser, Blue Prism instructs the browser extension which port to communicate using. When attaching to an existing session of the browser, this port information is not available, therefore, the fixed port of 31924 must be used. To enable this setting: Access the System -> Settings area of Blue Prism and look for the Browser Extension Connectivity section. Check the Use fixed browser extension port (31924) only checkbox, and then click OK. Now restart Blue Prism. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 35 Blue Prism Modern Browser Automation 4.4 Integrating with the Browser: General Spying Problems You may encounter unexpected problems during the spying operation which prevent you from using all spy modes to identify an element. If this happens, there is an additional feature connected to Application Modeller which can used to identify an element using the UI Automation mode. This feature is known as UI Automation Navigator and can accessed through the pop-up menu, which appears after clicking on the downward arrow on the Identify button in Application Modeller. Opening UI Automation Navigator Once opened, the UI Automation Navigator will scan the application for all elements. It will then display a tree structured list of found elements from which you can choose from to create an element fingerprint in Application Modeller. You will notice that when you select an element in the tree, the associated attributes will be displayed, and the element will be highlighted in the application window. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 36 Blue Prism Modern Browser Automation 4.4 Integrating with the Browser : General Spying Problems The illustration below shows an Edit element selected in the element tree, resulting in it being highlighted within the application window. Identifying elements using UI Automation Navigator © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 37 Blue Prism Modern Browser Automation 4.4 Integrating with the Browser : General Spying Problems Once you are happy you have selected the correct element from the element tree, click OK to return the attribute information back to the normal Application Modeller screen. As normal, you should review the match attributes and tweak these where necessary to obtain a unique match. Element attributes returned from UI Automation Navigator UI Automation Navigator will display invisible elements which can be particularly useful if the target application makes use of these invisible elements. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 38 Blue Prism Modern Browser Automation 5. Application Modeller Attributes i In this section you will review some useful tips to help with web browser element attribute matching in Application Modeller, when using the Browser spy mode. v1.01 (2020) © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism Modern Browser Automation 5.1 Application Modeller Attributes: Web Path/XPath Attribute and Dynamic Paths The Web Path attribute or Web Path/XPath attribute as it is known as from Blue Prism version 6.9+, is like a locator to the web element within a HTML page, similar to a file path to a file on your computer. The Web Path value contains HTML tags which are used to build the structure of the web page. Note, there is no requirement to understand HTML tags. The Web Path attribute can be used to match HTML elements if the web application or page is simple, i.e. not dynamic in nature and unlikely to change. Using the Web Path attribute to match elements will speed up the interaction but requires that the web page to be static in its underlying structure. Using a text editor like Notepad is useful when you need to spot where a path has changed. For example if you have spied an element that used to work but now it doesn’t, you could paste the path that used to work and the current path into Notepad and compare them. Often the only difference is just a single digit. You can then work around the issue by using a dynamic value for the Web Path attribute of your element. For elements that have dynamic Web Path attributes, it can be useful to get the path of one element in a section of the web page and then use this to dynamically set the path for other elements in the same section. For example, you could use a single element to read the values in a column of a table. The screenshot below shows the Web Path attribute of two separate elements within a table column; one for the first row and the other for the second row. Comparing multiple element Web Path values in Notepad © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 40 Blue Prism Modern Browser Automation 5.1 Application Modeller Attributes: Web Path/XPath Attribute and Dynamic Paths You will notice that the only difference between the 2 Web Path values is the digit held within the HTML tag TR[]. The increase by one is a common pattern for each row of a HTML table. This means you can spy a single table cell and set the Web Path match type to Dynamic; then use this single element to navigate down the table while reading the values. In order to do this, you will need to use a counter in the form of a Data Item, which has an initial value of 1. The counter data item value will increase by 1 on each loop and will replace the TR[] fixed row value, as shown in the illustration below. Example of using a Dynamic Web Path value to match on © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 41 Blue Prism Modern Browser Automation 5.1 Application Modeller Attributes: Web Path/XPath Attribute and Dynamic Paths A Block could be placed around the Read stage to capture any Exception thrown. This would typically indicate that the path has been incremented too many times and the element at the new path does not exist. For example, the end of a list or table may have been reached. Using the Block you could capture the exception and take appropriate action. i Example of using a Block stage to recognise the end of table rows • There is no requirement to understand all HTML tags which are used in the Web Path/XPath Attribute; however, it may be helpful to understand the standard tag set. A list of these and their descriptions are available in the Appendices section of this training course. • For Advanced users, XPath functions can be used to match using the Web Path/XPath Attribute. This will be covered in the optional advanced training section at the end of this course. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 42 Blue Prism Modern Browser Automation 5.2 Application Modeller Attributes: Web Page Address Depending on the structure of the web site, the Web Page Address of a spied element may be inconsistent. There are various reasons for this inconsistency, such as: • • The URL is dynamic; the web application generates a new URL each time it is accessed The web application has a Development, Test and Production environment, each with their own unique URLs It is usually helpful to un-tick the Match column for the Web Page Address attribute of the spied element in Application Modeller, to prevent problems which will arise if the URL changes. 5.3 Application Modeller Attributes: Match Index Enabling the Match Index attribute can be helpful in obtaining a unique match with an element, if multiple matches for an element have been found during the Highlight operation, and the Blue Prism ‘More than one matching Web element found’ error is displayed. Multiple matches error during Highlight operation © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 43 Blue Prism Modern Browser Automation 5.3 Application Modeller Attributes: Match Index Blue Prism searches for any elements within the target application, which have matching attributes with those selected in the Application Model defined by the developer. If more than one element match is found, then each will be highlighted during the Highlight operation. When the Match Index Attribute is enabled, only one element will be highlighted. If the value of Match Index is set to 1, Blue Prism will stop searching the application for elements as soon as it finds the first element that matches. If set to 2, then the search will halt after a second element that matches is found, and that element will be highlighted, ignoring the first. The value of Match Index can be adjusted by the developer if required. This can be very useful when working with multiple elements that are difficult to distinguish from each other. Unique match using the Match Index attribute to match on the first found element Using this attribute to match elements can result in significant performance gains by reducing the scope of a search query to the target application. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 44 Blue Prism Modern Browser Automation 5.4 Application Modeller Attributes: Web Element Type The Web Element Type attribute identifies the type of web element to consider in the matching process, and therefore should generally always be used as part of your match criteria as it will speed up the matching process. This is because the matching process will only consider elements of this Web Element Type. The Web Element Type will always match the very end tag within the Web Path attribute. Web Element Type attribute, matching the last tag of the Web Path attribute 5.5 Application Modeller Attributes: Web ID Using the Web ID attribute to match elements can speed up interaction with the target application. Some web applications allocate unique Web IDs to elements meaning the Web ID attribute can be used by a Blue Prism developer to create a reliable match. However, with some applications the Web ID attribute can be dynamic, so matching with this attribute might not work reliably as the value could change from one session to another. Try reloading the page after you have spied an element to help identify if the Web ID value is static or dynamic. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 45 Blue Prism Modern Browser Automation 5.6 Application Modeller Attributes: Web Class Like the Web ID attribute, some web applications contain elements that have static Web Class names. However, some applications contain elements where the Web class name changes so be careful when using this attribute to build an application model. 5.7 Application Modeller Attributes: Web Input Type The Web Input Type attribute would contain a value if the element spied has a Web Element Type of INPUT. This value will identify the type of input element and can be useful to speed up interaction as it will reduce the number of elements to consider in the match query. Values you may see in the Web Input Type are text, checkbox and radio. 5.8 Application Modeller Attributes: Web Text The Web Text attribute will contain the text which is displayed by the element, for example, if a page title area contained the words ‘Blue Prism’, then the Web Text value will be ‘Blue Prism’. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 46 Blue Prism Modern Browser Automation 6. Interacting with HTML Elements i In this section you will learn how to interact with various HTML page elements including data tables, and also learn how to navigate to a new page address (URL). v1.01 (2020) © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism Modern Browser Automation 6 Interacting with HTML Elements: Introduction In this section you will look at some techniques that can be used when interacting with web applications or pages. Applications and web pages which are presented through a browser window are made up of a variety of element types and fields. The code used to build these pages is known as Hypertext Markup Language, which is abbreviated to HTML. All fields and elements in the browser window are classified as HTML elements. When interacting with HTML elements using Browser spy mode, it is important that you only spy the element you wish to interact with, and not placeholder HTML or any other hidden elements. For example, when spying a checkbox, ensure only to select the checkbox itself, and not the container area. This has been illustrated below for a checkbox element. Checkbox spied correctly i Checkbox spied incorrectly You will explore how to interact with HTML elements like the checkbox in the following slides. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 48 Blue Prism Modern Browser Automation 6.1 Interacting with HTML Elements: Unable to Spy HTML Element Extra care should be taken when spying HTML elements using the Browser spy mode, as more complex websites may make use of advanced styles or other techniques for formatting fields and other values, which could possibly prevent interaction with HTML elements. As outlined in Section 4, it is a good idea to make use of more than one spy mode if you encounter issues. A useful tip to remember is that to read or write to a HTML element using Browser spy mode, the element does not need to be visible on the screen. If the element exists on the page you are currently viewing, then reading or writing to the element using Browser spy mode should be successful. If a user would normally scroll a web page to read or write to an element, Blue Prism using the Browser spy mode can read or write to these elements without having to scroll down or up the page. 6.2 Interacting with HTML Elements: Wait Stage with Modern Browsers During Foundation Training, you learnt about the importance of including intelligent Wait stages within your Action diagram to provide resilience. It is equally important to include these Wait stages when automating web applications and pages presented through a browser. Web applications and pages do not load all HTML elements at once; instead, page resources are requested and loaded separately. This can add a small amount of complexity in Wait stages because checking a single element has loaded doesn’t necessarily mean that all elements have loaded. In addition to this, there is currently no action to check if a page load has completed when using the Browser spy mode. This enhancement has been requested! © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 49 Blue Prism Modern Browser Automation 6.2 Interacting with HTML Elements: Wait Stage with Modern Browsers To work around this, you must put a few checks in place using intelligent Wait stages to confirm that the page has loaded, and that the elements of interest are ready before attempting any interaction. These checks will be determined by the behaviour and the complexity of the page being loaded. • If the page is very basic, then checking the page title exists and a footer or element at the bottom of the page exists, should be sufficient to satisfy your checks. • More complex pages or apps loading data to a table for example, should have more robust checks in place which could include a combination of intelligent Wait stages, Read stages and Decision stages! © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 50 Blue Prism Modern Browser Automation 6.2 Interacting with HTML Elements: Wait Stage with Modern Browsers In this next exercise you will add resilience to the BP Travel Launch Action which you created earlier, by adding an intelligent Wait stage to the Action, to check that the BP Travel – Log In window exists. As the BP Travel application is very basic, you only need to perform simple checks for the page loading correctly. For this, you will check that the bptravel header exists, and the Log In button exists. Exercise 1: Add Wait Stage Open your BP Travel – Basic Actions Business Object and run your Launch Action. This should load BP Travel and connect your Business Object. Open Application Modeller, and spy the bptravel header using the Browser spy mode. Review and update the match criteria accordingly. Now spy the Log In button and adjust the match criteria. Close Application Modeller to return to your Launch Action. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 51 Blue Prism Modern Browser Automation 6.2 Interacting with HTML Elements: Wait Stage with Modern Browsers Add a Wait stage to your diagram below the Launch stage. Configure the Wait stage to check for the BP Travel Header. Now add another Wait stage after the current Wait stage and link the two from the connector of the first Wait stage. Configure the second Wait stage to check for the Log In button. Add Exception stages to both Timeout stages and setup up the Exception Detail for each. Connect all the stages up. Save your Object, close the browser and then run your Launch Action to test you get the desired result. Once completed, close the browser again ready for the next exercise. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 52 Blue Prism Modern Browser Automation 6.2 Interacting with HTML Elements: Wait Stage with Modern Browsers Exercise 1: Recap The steps you have completed in Exercise 1 have added resilience to your Object diagram through the use of intelligent Wait stages. These Wait stages are checking that page elements exist before allowing the flow to continue to the next stage. If an element is not found, then System Exceptions are thrown which can be recovered and handled by the process. i Never assume a target application or browser page has loaded correctly or is in the expected state. Always use intelligent Wait stages; • • at the start of your Action to check the application has loaded and is in the correct state, before attempting interaction after you have performed a Navigate action which changes the application appearance 6.3 Interacting with HTML Elements: Text Input Elements Text input elements are fields in the web application or page which require the user to type information into using the keyboard, or information is presented back to the user in these text fields. There are 2 main types of text inputs in a web page; text and textarea. The key difference between the 2 is that a text input is a single row input, whereas, a textarea can contain multiple rows. Both can appear different in appearance because web developers will build their own presentation styles to overlay the text input. The Web Element type for text inputs is INPUT or TEXTAREA. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 53 Blue Prism Modern Browser Automation 6.3.1 Interacting with HTML Elements: Writing to Text Input Elements Your first choice of tool when it comes to writing information to a text input, should be the standard Blue Prism Write stage. Using a Write stage to write to a text input element does not always achieve the desirable result. For example, you might try writing to a username field, and from appearance, it seems to have been successful; however on clicking submit, an error message is displayed by the web page saying something like “Please enter a username”, even though you can see that the value has been correctly written to the field. This can happen because the data validation functions used by the web page might be expecting keystrokes, and the Write stage has “fooled” it. To get around this, you will need to use a Navigate stage to call the Send Keys Action instead of using a Write stage. Some websites have maximum character limits imposed on some text input elements. Using a Write stage can sometimes fool the website into allowing too many characters into the field, because the Write stage “sets” the field value rather than typing characters into it. This is important to bear in mind because if a field has been filled with more characters than the website would usually allow, the website could produce an error when you try to submit or post the data. Exercise 2: BP Travel Log In In this next exercise you will create an Action to log into the BP Travel application. The username and password to access the BP Travel application for this exercise is: • • Username: Password: BluePrism BluePrism © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 54 Blue Prism Modern Browser Automation 6.3.1 Interacting with HTML Elements: Writing to Text Input Elements Open your BP Travel – Basic Actions Business Object and run your Launch Action. This should load BP Travel and connect your Business Object. Create a new Action named Log in. Open Application Modeller and spy the ‘User Name’ field using the Browser spy mode. Remember to review and adjust your match criteria. Now spy the Password field using the Browser spy mode and then return to your Object diagram. Create 2 Input Parameters; 1 for the username and one for the password. Set the default values for the data items using the log in details provided earlier. Copy the 2 Wait stages from your Launch Action, and paste them at the start of the new Log In Action. You can manually configure the Wait stages if you wish. Add a Write stage and link it to the connector from the second Wait stage. Configure the Write stage to input the User Name and Password. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 55 Blue Prism Modern Browser Automation 6.3.1 Interacting with HTML Elements: Writing to Text Input Elements Connect the Write stage to the End stage. Reset and save your Business Object. Now run your Log In Action to test that the Username and Password can be written to the fields successfully. Exercise 2: Recap The Action created in Exercise 2 provides the ability to write log information to the BP Travel log in form using the standard Blue Prism Write stage. The next step is to add the ability to click the Log In button to complete the log in procedure. This will be covered in the next slide. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 56 Blue Prism Modern Browser Automation 6.4 Interacting with HTML Elements: Clicking Web Buttons or other elements Buttons and other elements which have been spied using the Browser spy mode can be clicked using the standard Blue Prism Navigate stage Click Action. The next exercise will add the ability to your Log In action to click to Log In button on the BP Travel Log In page. Exercise 3: Clicking Button You already have the Log In button spied using Browser mode, so you can jump straight into adding a Navigate stage to the Log In Action. This should be placed after the existing Write stage and the 2 stages connected. Manually click the Log In button so the Search menu page is displayed in the BP Travel application. Spy the Search For label using the Browser mode; you will use this in a Wait stage to check the Search menu page has loaded as expected. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 57 Blue Prism Modern Browser Automation 6.4 Interacting with HTML Elements: Clicking Web Buttons or other elements Spy the Search button using the Browser mode; this will be used in a later exercise. Click OK to return to your Object diagram. In your Log In Action, delete the link between the Navigate stage and End stage, and insert a Wait stage after the Navigate stage. Configure the Wait stage to check that the Search page has loaded. Add an Exception stage and connect this to the Timeout stage of the new Wait stage. Link up all stages. Reset and save changes to your Object. Close the session, and then run your Launch Action. Now run your Log In Action to test it can log into BP travel, and recognize the Search page. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 58 Blue Prism Modern Browser Automation 6.4 Interacting with HTML Elements: Clicking Web Buttons or other elements Exercise 3: Recap The changes you made in Exercise 3 completes the build of a Log In Action. You’ve added the ability to click that the Log In button, and added resilience using a Wait stage to check that the expected Search page is loaded, after clicking the Log In button. 6.5 Interacting with HTML Elements: Radio Button elements A typical Radio button will present several options as circular buttons for the user to make their selection from. The user will be allowed to select only 1 option from the available options. The appearance of a Radio button can differ depending on the styling which the developer has applied, however the behaviour will be the same in terms of providing the user with a selection of options, and the user can select 1 of those options. Typical Radio button control Radio buttons which have been spied using the Browser spy mode, can be interacted with from Blue Prism using the Navigate stage. Each Radio button has an underlying value assigned, and this value may not be obvious from the Radio button label which is visible in the page. You will look at inspecting the HTML code behind the web page in a later exercise. In the next exercise, you will build a new Action to select a search type Radio option from the BP Travel Search page, and then perform a booking search in the application. Remember, when spying elements, it is important to spy the element only and not the container element. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 59 Blue Prism Modern Browser Automation 6.5 Interacting with HTML Elements: Radio Button elements Exercise 4: Selecting a Radio Button option Your Basic Actions Object should already be connected to the BP Travel application, with the Search page open. Create a new Action in your Object. Name it Booking Search. Using Browser spy mode, spy all 3 Radio button options (you could use Dynamic Matching for identification of the Radio buttons). Add a Start-up Parameter which will be used by the process to determine which Search Type (radio button) to select. Create another Start-up Parameter to provide the Search For value. Now spy the Search For text box. Once done, return to your Action diagram. Add appropriate resilience to the start of your Action using intelligent Wait stages, to check that the Search page is displayed. Add some logic to your diagram to determine which Radio button should be selected. I have used a Choice stage for this. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 60 Blue Prism Modern Browser Automation 6.5 Interacting with HTML Elements: Radio Button elements Add 3 Navigate stages (unless using Dynamic Matching) to your diagram and connect each to 1 of the connectors on the Choice stage. Open the 1st Navigate stage Properties window and configure a Check Radio Action to select the appropriate Radio button. 11 10 Change the initial value of the Search Type to Quote Reference and then step through your Action to test your logic and interaction with the Radio button. Repeat step 8 to configure the 2nd and 3rd Navigate stages to select the relevant Radio buttons. Repeat step 10 to test the other Radio button options. 12 Add a Write stage and connect this to your diagram after the Radio button selection (Navigate) stage. Configure the Write stage to write the Search For Data Item value to the Search For textbox. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 61 Blue Prism Modern Browser Automation 6.5 Interacting with HTML Elements: Radio Button elements 14 13 Add a Navigate stage to your diagram after the Write stage, and configure the stage to perform a Click Action against the Search button. 16 The BP Travel Search Results page should now be displayed. 15 Set the initial value of the Search Type Data Item to Booking Reference, and the Search For Data Item to * (wildcard). Now run your Action. Connect the Navigate stage to the End stage. Reset and save your Object. 17 Spy elements in the Search Results page and use these elements in intelligent Wait stages to check that the page has loaded as expected. 18 Reset and save your Action. Manually click on the Search link in the Browser window, and then run your Action to test your integration. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 62 Blue Prism Modern Browser Automation 6.5 Interacting with HTML Elements: Radio Button elements Exercise 4: Recap In Exercise 4, you developed an Action in your Business Object to interact with Radio buttons in the BP Travel application, and enabled the ability for processes to perform a booking search using the ‘Search Type’ and ‘Search For’ Input Parameters to define the search criteria. In the next exercise, you will look at extracting search results so keep the Search Results page open, but you can close your Basic Actions Business Object. 6.6 Interacting with HTML Elements: Tables Web applications and pages often contain tables of data and the HTML code behind the tables can differ depending on the complexity. In this next section, you will focus on basic HTML Table interaction. Blue Prism Browser spy mode provides the ability to read an entire HTML table through a single Read stage, storing the result in a Blue Prism Collection. From here, you can loop through the rows in the Collection as part of your process design. This method is much faster than performing cell by cell reads from the table. Sometimes, the table cannot be read into a Collection using a single Read stage because of how the table code has been built. In these instances, you may have to be a little more creative with your approach. You will look at some of the options available for performing table reads in the following sections. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 63 Blue Prism Modern Browser Automation 6.6.1 Interacting with HTML Elements: Read Basic HTML Table to Collection To read an entire basic HTML Table using a single Read stage, you must ensure you spy the table element using the Browser spy mode. Spying a table cell, row or table container will not expose the Action to the Read stage to read all table data. You can identify when you have spied the table element by looking at the Element Type field in Application Modeller. It should contain the value of Table (Web). Application Modeller: HTML Table identified correctly as Table (Web) It can sometimes be tricky to spy the table element. It may help to use the Zoom feature available in the browser to enlarge the view. Try hovering over the edges of the table until the full table is highlighted, or if the table contains a scrollbar then try hovering over this. Once you have successfully spied the Table element, the Get Table Items action will be made available to a standard Read stage when using the spied table element. This can then be used to read the table data into a Collection. In the next exercise, you will use the Get Table Items action in a Read stage to read the search results data, and use an Output Parameter to pass the data back to the calling process. Spying HTML Table element by hovering near the scrollbar © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 64 Blue Prism Modern Browser Automation 6.6.1 Interacting with HTML Elements: Read Basic HTML Table to Collection Exercise 5: Read Table Data to a Collection Create a new Business Object and name it BP Travel – Search Results. Configure Application Modeller to connect to the BP Travel – Search window, and then create an Attach Action. Add a Read stage to your diagram and connect up the stages. You will use this Read stage to read the results table. Making sure your Object is attached to BP Travel, create a second Action and name it Read Search Results. Open Application Modeller and spy the results table using Browser spy mode. Open the Read stage Properties window. Using the table element spied in step 2, configure a Get Table Items Action. Return to your Action diagram and add relevant Wait stages to the start of your Action to check that the results page is available. Configure an Output Parameter in the End stage Properties window to pass the Results Collection back to a Process. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 65 Blue Prism Modern Browser Automation 6.6.1 Interacting with HTML Elements: Read Basic HTML Table to Collection Exercise 5: Recap In Exercise 5, you developed an Action in your Business Object to recognize a standard HTML table, and then to read the rows and columns of data using a single Read stage, outputting the table data to a Collection. Reset and save your Object. Run your Read Search Results Action to confirm you can read the table data into a Collection. i Open the Results Collection and select the Current Values tab. Notice how Column1 is Blank! This is explained below. This Collection containing search result information can then be passed back to a process using an Output Parameter. The Get Table Items Action will read table data into a Collection, if the HTML table code uses the standard HTML table tags to define each row and column. This would look like <tr><td>My Value column 1</td><td>My Value column 2</td></tr>, where <tr> indicates a table row, and <td> indicates table call containing table data. The Reference column in the BP Travel search results table does not contain any table data value, and the values you see in this column in the table are buttons which have a display value assigned. We’ll learn how to overcome this challenge in the next section. There is no requirements to understand HTML tags, however a list of common tags have been provided in the Appendix section at the end of this training course. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 66 Blue Prism Modern Browser Automation 6.6.1 Interacting with HTML Elements: Read Basic HTML Table to Collection Exercise 5: Recap In Exercise 5, you developed an Action in your Business Object to recognize a standard HTML table, and then read the rows and columns of data using a single Read stage, outputting the table data to a Collection. The Collection containing search result information can then be passed back to a process using an Output Parameter. 6.6.2 Interacting with HTML Elements: Read Non-Standard HTML Table Data As you experienced in Exercise 5, if a HTML table does not use standard HTML table tags, then the Get Table Items Action may not be successful in reading table data into a Collection. There are several methods you could use to overcome this challenge. One method which is widely used is to use counters for each of the rows and columns in the table to be read, and then use these counters in conjunction with a dynamic Web Path Attribute to read each cell value individually, using a Read stage – Get Text Action. The method of using counters and a dynamic Web Path Attribute was discussed in section 5.1 of this training course. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 67 Blue Prism Modern Browser Automation 6.6.2 Interacting with HTML Elements: Read Non Standard HTML Table Data As already highlighted, the Reference column in the BP Travel search results table does not contain data, and the value displayed is that of a button. In the next exercise, you will expand your Read Search Results Action so that the Reference column is also extracted. This will be achieved by using a combination of the following: • • Read columns 2 – 4 using the Get Table Items and output the data to the Results Collection Using counters and a dynamic Web Path to the Reference column button element, you will extract column 1 values and add the information to the Results Collection Exercise 6: Read Column Data using a Dynamic Web Path In your BP Travel – Search Results Object, open Application Modeller, create a new element and spy the first row of the Reference column, ensuring you spy the value and not the cell. Adjust match attributes for the element, but this time you will also need to match on the Web Path Attribute. Copy the value from the Value column of the Web Path Attribute and paste it to Notepad. Change the Match Type of the Web Path Attribute to Dynamic. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 68 Blue Prism Modern Browser Automation 6.6.2 Non Standard HTML Data 6.6.1 Interacting with HTML Elements: Read Basic HTML Table to Table Collection Return to your Read Search Results Action diagram and add a new Numeric Data Items named Current Row, with an Initial Value of 0. Add a Loop stage to your diagram and connect this Add a Calculation stage between the Loop Start and End stages and run a link from the Loop Start to the Read Results Table stage. In the Loop Start stage to the Calculation stage. stage Properties window, select the Results Collection. Configure the Calculation stage to increase the Current Row Data Item value by 1, for each loop of the Results Collection. This will be used to remember the current table row number. Add a Read stage after the Calculation stage and link it from the Calculation stage, to the Loop End stage. Open the Read stage Properties window and drag the element spied earlier which uses a Dynamic Web Path, over to the Element column. Select Get Text from the Data column. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 69 Blue Prism Modern Browser Automation 6.6.2 Interacting with HTML Elements: Read Non Standard HTML Table Data 10 Set the Store In column to your Collection and Column1 name, for example Results.Column1. Click the Params button. 11 The Application Element Parameters window is where you provide a dynamic value to Application Modeller to use when matching an element. open the Expression Editor by clicking the calculator icon. 13 This Web Path will match column 1 row 1 only, because TR[1] tells Application Modeller to match table row 1. You must use the Current Row Data Item value to build the Web Path match value. 12 Copy the Web Path value from Notepad (step 3) and paste into the Expression area of the Expression Editor window. As this value is a text value, you must enclose the value in double quotes. 14 15 Update the Expression to replace the table row (TR) Connect the Loop End stage to the diagram End value with the value from the Current Row Data stage. Reset and save your changes. Item. Once done, return to your Action diagram. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 70 Blue Prism Modern Browser Automation 6.6.2 Interacting with HTML Elements: Read Non Standard HTML Table Data 16 Now run your revised Read Search Results Action. 17 Open the Results Collection and review the Current Values tab to confirm your Action can now read the Reference column. Exercise 6: Recap In Exercise 6, you explored the use of a dynamic Web Path attribute match to identify which row in Column1 (Reference column) to read data from. The Web Path match value was provided through the Params area of the Read stage, with the TR[*] (table row number) match value incremented by a Calculation stage contained within a loop. The same technique could be used if you had a requirement to read all columns and rows of data, if the standard Get Table Items Action fails. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 71 Blue Prism Modern Browser Automation 6.6.3 Interacting with HTML Elements: Read Table Using Cell References In the previous exercise, you used a combination of techniques to read data from a table, which included reading column1 by using a Dynamic match on the Web Path attribute to indicate which row to read. Similarly, it is possible to read each data cell using a Dynamic match on the Web Path attribute, by indicating which column and row to read within 2 constructed loops. As you learnt earlier, the TR[*] value in the Web Path Attribute indicates which row in the table to match. The TD[*] value in the Web Path Attribute, indicates which column to match. Web Path Attribute example referencing to Row 1, Column 2 in a particular web table To read table data using this technique, the Dynamic Web Path Attribute match value should be updated to replace the hard coded row (TR) and column (TD) identification numbers, with Data Items containing the relevant row and column identifying values, which should be incremented by Calculation stages within constructed loops. Web Path Attribute example referencing Data Items containing the current row and column indicators An illustration of a Blue Prism Action performing this type of operation is available in the next slide. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 72 Blue Prism Modern Browser Automation 6.6.3 Interacting with HTML Elements: Read Table Using Cell References Constructed Loop 1 to iterate through the table rows Constructed Loop 2 to iterate through the table row columns Web Path Attribute is updated on each iteration, to include the values from [Current Row] and [Current Column] Data Items Updated Web Path Match Value …/TABLE[1]/TBODY[1]/TR[1]/TD[1] Recover stage used to identify when no more columns and rows exist. …/TABLE[1]/TBODY[1]/TR[1]/TD[2] …/TABLE[1]/TBODY[1]/TR[1]/TD[3] …/TABLE[1]/TBODY[1]/TR[1]/TD[4] …/TABLE[1]/TBODY[1]/TR[2]/TD[1] …/TABLE[1]/TBODY[1]/TR[2]/TD[2] …/TABLE[1]/TBODY[1]/TR[2]/TD[3] …/TABLE[1]/TBODY[1]/TR[2]/TD[4] © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 73 Blue Prism Modern Browser Automation 6.6.3 Interacting with HTML Elements: Read Table Using Cell References i Reading large tables of data using the cell reference will hit the performance of your Action, because it will have to loop through each row and column performing individual reads. If the application provides a filter feature to reduce the table contents, then it would help to improve your Action performance by applying a filter before starting to read data. Likewise, if the application provides the ability to export the table data to a local file, which can then be read using standard utilities, then this would be the prudent approach. 6.7 Interacting with HTML Elements: Checkbox elements A typical Checkbox will present a user with a single option or value to select or deselect; or check or uncheck. When the checkbox is selected, the underlying value attribute assigned to the checkbox in the HTML code, will be assumed. If no value attribute is assigned in the HTML code, then the value of ‘on’ is assumed when the checkbox is checked. The value assigned to a checkbox may not be obvious from the checkbox label which is visible in the page. You will look at inspecting the HTML code behind the web page in a later exercise. The appearance of a checkbox can differ depending on the styling which the developer has applied, however it will have the same behaviour in terms of providing the user with a single selection option. Unchecked checkbox example Checked checkbox example A checkbox which has been spied using the Browser spy mode, can be interacted with from Blue Prism using the Navigate stage or a Write Stage, depending on the required operation. In the next exercise, you will look at how to set a checkbox state to checked or unchecked. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 74 Blue Prism Modern Browser Automation 6.7.1 Interacting with HTML Elements: Set Checkbox element state Exercise 7: Set Checkbox element state Manually navigate the BP Travel application to the Create Quote screen, by clicking on the Create Quote link. Create a new Business Object named BP Travel – Create Quotes and configure an Attach action. Run your Attach Action to attach to the BP Travel session. Create a new Action named Create Quotes, and configure relevant Input Parameters for each of the items in the Create Quote form. Ensure the One Way Input Parameter is a Flag Data Type. Set the corresponding One Way Data Item Initial value to True. Open Application Modeller and then spy some elements which you can use in a Wait stage to check that the Create Quotes page has loaded. Configure the Wait stage at the start of your new Action. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 75 Blue Prism Modern Browser Automation 6.7.1 Interacting with HTML Elements: Read Checkbox element state Open Application Modeller and then spy the One Way checkbox using the Browser spy mode. Use the highlight button to ensure you have spied to the checkbox only and not the surrounding elements. i Add a Write stage and link it from your Wait stage, and to the End stage. Configure the Write stage to write the Flag value stored in the One Way Data Item, to the checkbox element. Reset and then save your change. Now run your action to test that the Write stage checks the One Way Checkbox. Manually change the checkbox state and then run the Action again. Certain application or page designs will attach an event to a checkbox, which will in turn perform some activity, like remodeling the page. Using the Write stage to set the state of the checkbox will not trigger the event, therefore, you may need to use the Click Action in a Navigate stage to check or uncheck a checkbox, to ensure the event triggers. If using the Click method, you must first use a Read stage – Get Check State Action to obtain the current state of the checkbox before clicking it. This is to ensure that your Click Action doesn’t inadvertently set the checkbox state to unchecked, if the checkbox was already checked when the page loaded. Exercise 7: Recap In Exercise 7, you explored how to use a Write stage to set the state of a checkbox element. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 76 Blue Prism Modern Browser Automation 6.8 Interacting with HTML Elements: Drop-down lists A drop-down list element is a field which presents multiple values to a user for selection, and dependent on how element was designed, can either allow single item selection, or multiple item selection. The appearance of a drop-down list can differ depending on the styling which the developer has applied; the behaviour of the list can be very different, depending on how the list has been constructed in the code. When spying a drop-down list element using Browser spy mode, the Web Element Type attribute value will be set to SELECT, if the list is a basic HTML list. Also, the Overarching Element Type which Blue Prism assigns to a basic drop-down list is List (Web). Basic drop-down list example Any other value will indicate that the list has been constructed using a more advanced approach which will require different methods of integration from Blue Prism. In this section, you will focus only on basic HTML list design. Example of a basic drop-down list spied as Element Type List (Web) To select an item from the list, the user would generally click the downward arrow to reveal the list, and then click the item for selection. With a basic drop-down list, Blue Prism can select an item from the list without expanding the list, using a Navigate stage. In the next exercise, you will spy the To and From drop-down list in the BP Travel – Create Quotes screen, and add navigate stages to select an item from each list. The exercise assumes your Create Quotes Business Object is already attached to the BP Travel session. If it is not attached, then run your Attach action to make the connection. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 77 Blue Prism Modern Browser Automation 6.8.1 Interacting with HTML Elements: Select item from drop-down lists Exercise 8: Select item from drop-down lists Open Application Modeller and spy the From and To drop-down list elements using Browser spy mode. Ensure you spy only the drop-down list and not any container element. Return your Create Quotes Action and add 2 Navigate stages between the existing Wait stage and the Set Checkbox Write stage. Link up the stages. Open the 2nd Navigate stage and repeat the previous step, but this time for the To drop-down list. Assign an initial value to the From Data Item using a Reset and save your Action. Run your Action to value from the From list on BP Travel. Repeat the confirm it achieves the desired result. same for the To Data Item. Open the 1st Navigate stage and configure a Select List Item Action using the From drop-down list element. Set the Inputs Item Text to the From Data Item. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 78 Blue Prism Modern Browser Automation 6.8.1 Interacting with HTML Elements: Select item from drop-down lists Exercise 8: Recap In Exercise 8, you expanded your Create Quotes Action to select From and To locations from drop-down lists in the BP Travel application. As an additional exercise, why not complete the build of your Action by spying the others form fields, and then and use the Input Parameters created earlier, to populate these fields. 6.9 Interacting with HTML Elements: Navigate to an web address (URL) If a website is particularly complex or if the current method of navigating through pages to get to the required page is long winded, it maybe more efficient to go direct to the required page using the web address or URL. This can be done by spying the body of the web page using Browser spy mode, and then using a Navigate stage -> Set Address action with the spied body element. The Web Element Type of a web page body, is BODY. This approach could significantly speed up navigation as an alternative to navigating around multiple pages to get to the end page. Be careful however, as it also has its cons, for example if the URL of the required page changes! An example of this approach has been illustrated on the next slide. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 79 Blue Prism Modern Browser Automation 6.9 Interacting with HTML Elements: Navigate to an web address (URL) Example of using the page Body element to navigate to a new URL © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 80 Blue Prism Modern Browser Automation 7. Advanced Topics and Techniques i In this section you will learn how to inspect the HTML code behind a web page or web application. You will also learn how to match elements in Application Modeller using use Xpath Expressions. Finally, you will review how to insert and invoke JavaScript functions in a web page using a Blue Prism Navigate stage. v1.01 (2020) © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism Modern Browser Automation 7 Advanced Topics and Techniques: Introduction In this section, you will look at a few different techniques which can help with integration with Modern browsers. This section is completely optional, however some of the techniques may help you overcome some of the challenges you face when automating browser applications and pages. 7.1 Advanced Topics and Techniques: Pop-up Windows Depending on how the web application has been built, you might need to create a separate business object to interface with a popup window. This will be the case if you see the “A spying error has occurred” error message. A new object will need to be configured to attach to a running instance of the popup, rather than launching something. Pop-up windows may need to be spied using Win32 or UI Automation mode instead of the usual Browser mode. To speed up development, it might be best to build a separate generic object to handle Browser pop-up windows. Example pop-up windows which will require a separate Business Object for integration © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 82 Blue Prism Modern Browser Automation 7.2 Advanced Topics and Techniques: Inspecting Web Page HTML Source Code Sometimes it can be useful to look at the HTML source code to understand the structure of the web page or application, such as when dealing with tables, as described in section 6.6. Inspecting page source code is not always helpful but it can be revealing. There are 2 quick options for inspecting a web page or application source HTML code from within the browser window: 7.2.1 Advanced Topics and Techniques: View Source (Basic) Option 1: View Source (Basic) Right mouse click on the web page and select View page source from the pop-up menu. The HTML code behind the web page will be displayed in a new Tab. Scroll through the code or use the find option to locate the area of interest. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 83 Blue Prism Modern Browser Automation 7.2.1 Advanced Topics and Techniques: View Source (Advanced) Option 2: View Source (Advanced) Press F12 in the browser to launch the browser Developer Console. Click on the selection tool, and then click on the element in the web page which you would like to inspect. The selected element in the HTML code will be selected in the Developer Console window, ready for your inspection. 7.3 Advanced Topics and Techniques: Invisible Elements It is sometimes possible to manipulate HTML elements that aren’t on the visible screen. For example, it might be possible to click a link on a sidebar even though it isn’t currently visible to a human user. After some experimentation you can often save time by using this technique. After spying an element and saving it in Application Modeller, sometimes it won’t be highlighted on the screen by the red rectangle when you press highlight, even though the “Unable to find element” error message was not displayed by Blue Prism. After closer inspection, sometimes you will notice a tiny 1x1 red pixel highlighted at the top left corner of the page. This is often indicative of an invisible, zero-size element that the web page manipulates with client-side code such as JavaScript. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 84 Blue Prism Modern Browser Automation 7.4 Advanced Topics and Techniques: XPath XPath is an official recommendation of the World Wide Web Consortium (W3C). It defines a language to find information in structured files such as XML and HTML files. It is used to traverse elements and attributes of a supported document types. XPath provides various types of expressions which can be used to identify relevant information from the XML or HTML document. Whilst this section won’t go into the available functions and features of XPath, it will demonstrate how to get an XPath for a web page element, and then how to use this in Application Modeller as part of your Attribute match. In discussed previously, you can use the Web Path Attribute in Application Modeller to match page elements. The match value of a Web Path is populated during the Identify operation and is considered as the full XPath to the element of interest. This Web Path is used to traverse the web page elements to locate the element of interest. Example Web Path Attribute You can replace the Web Path value with an XPath expression, which can be a helpful option for identifying a page element, especially if the standard Web Path is not static, i.e. changes each time the page loads. It also enables the interaction with hidden elements which you can’t spy manually in Browser Mode. Example Web Path Attribute using an XPath expression to identify the ‘departing’ element In the next section, you will look at how modern browsers include a feature which can be used to extract XPath Expressions, which you can then use in your element match criteria within Application Modeller. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 85 Blue Prism Modern Browser Automation 7.4.1 Advanced Topics and Techniques: Use Browser to extract XPath Expression Exercise 1: Extract XPath Expression Open your browser and navigate to http://bptravel.blueprism.com/. Now press F12 to open the Developer Console feature. Using the selector tool, click on the BP Travel User Name text box. The element will be highlighted in the Developer Console window. Right mouse click on the selected element in the console window, and then select Copy -> Copy Xpath, or Copy -> Xpath. Exercise 1: Recap In exercise 1, you learnt about how to extract the XPath expression using the Developer Console area of the modern browser. You will need to keep the extracted XPath expression because you will use this in Application Modeller in the next exercise. Open Notepad and paste the extracted value. This value is the XPath expression which can be used to identify the element. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 86 Blue Prism Modern Browser Automation 7.4.2 Advanced Topics and Techniques: Using Xpath Expressions in Application Modeller Exercise 2: Using XPath Expressions in Application Modeller Open your browser and navigate to http://bptravel.blueprism.com/. Open your BP Travel – Basic Actions Business Object and Attach to the browser session. Copy the XPath expression from Notepad and paste the expression in the Value column of the Web Path Attribute. Open Application Modeller and locate the User Name element which you spied earlier. Uncheck all existing match Attributes. Locate the Web Path element and enable the match on this Attribute. Delete any value from the Value column. Press Highlight to confirm the User Name field can be identified using only the XPath expression. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 87 Blue Prism Modern Browser Automation 7.4.2 Advanced Topics and Techniques: Using Xpath Expressions in Application Modeller Exercise 2: Recap In Exercise 2, you explored how you can use an XPath expression which you previously extracted, in the Web Path Attribute in Application Modeller to identify a web element. 7.5 Advanced Topics and Techniques: Inserting and Invoking Javascript Sometimes, it can be convenient to call a JavaScript function which is defined in the HTML of the web page you are interfacing with yourself. You can do this by using the Invoke JavaScript Function action. The action takes two inputs: the name of the function to be called and any arguments which are to be passed to the JavaScript function. The specified function will be run within the browser when the action is stepped over. It is also possible to write your own JavaScript code which can be a mixture of methods and variables, and then run your code on the web application. Once you have written the code you would like to run into a Data Item for example, you can then use the action Insert JavaScript Fragment. This action places the supplied code into the target document, allowing you to then call it using the Invoke JavaScript Function action. Both the Invoke JavaScript and Insert JavaScript Actions are available in the Navigate stage, if you spy a page element using the Browser spy mode. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 88 Blue Prism Modern Browser Automation 7.5 Advanced Topics and Techniques: Inserting and Invoking Javascript The Insert JavaScript stage shown in the example Action below, takes the input [JavaScript Function], which is the text Data Item holding the custom JavaScript code. The Invoke JavaScript stage takes two inputs; the name of the function held within the browser application source code that you wish to call, in this case “sayHello”, and any Arguments you wish to pass to that function. If you do not want to pass any arguments, you need to set the input to “[]”. Running the highlighted stage results in the browser application running the inserted JavaScript function. Example Action: Inserting and Invoking JavaScript Function © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 89 Blue Prism Modern Browser Automation 7.5 Advanced Topics and Techniques: Inserting and Invoking Javascript Example JavaScript Function invoked You can invoke any JavaScript function that is available in the web page source code, but Web Developers often obfuscate their JavaScript source code so it might be time consuming to determine which functions you need to call as well as risky. Both techniques should be used with caution as you may be forcing the application to do things it wasn’t designed to do. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 90 Blue Prism Modern Browser Automation 8. V6.9+ Training Addendum i This training addendum provides information about improvements and additional functionality, which were introduced from Blue Prism version 6.9+ and browser extension version 2.2.1. This section should be reviewed after completing all other sections of this training course. v1.01 (2020) © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism Modern Browser Automation 8 V6.9+ Training Addendum: Overview of Improvements I. Multiple Browser Interaction Improvements have been made to Blue Prism Runtime Resources (Digital Workers) and to the browser extension, which enables the ability to have multiple browser sessions open and interact with each of the sessions. II. Application Navigator Application Navigator was available for automations using Internet Explorer; this has now been added to our Chrome, Edge and Firefox capabilities. The Application Navigator builds a tree-like representation of the HTML of a page to allows a user to identify elements that may be difficult to interact with using normal spy modes. We expect our Chrome, Edge, and Firefox Application Navigator functionality to be more performant than it’s Internet Explorer equivalent. III. CSS Selector Attribute A new attribute has been added to Application Modeller which will allow users to match web elements based on the CSS vs. XPath or a combination of other matching attributes. IV. Parent Document Loaded This Action was available in Wait stages for automations using Internet Explorer; this has now been added to our Chrome, Edge, Firefox capabilities and provides the ability to check of the page parent document load has completed. V. Web Path Attribute This attribute has been renamed to Web Path / XPath to correctly reflect that the attribute match value will accept both Web Paths and XPath identifiers. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 92 Blue Prism Modern Browser Automation 8 V6.9+ Training Addendum: Overview of Improvements VI. Mouse Hover New functionality has been added which enables users to trigger the “onmouseover” event of web elements through the use of a new “Hover” action within Navigate stages. VII. Get HTML This action was available in Read stages for automations using Internet Explorer; this has now been added to our Chrome, Edge, Firefox capabilities and provides the ability to extract the HTML from a spied element. VIII. Improved interactions with complex tables i Additional information about a few of these items is provided on the following slides. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 93 Blue Prism Modern Browser Automation 8.1 V6.9+ Training Addendum: Multiple Browser Interaction From Blue Prism version 6.9, the ability to open and interact with multiple browser sessions was introduced. This ability is made possible through the introduction of a Tracking ID Output Parameter, which is automatically generated and associated with the browser session when the Launch Action is executed. ▪ The Tracking ID value should be returned to your process using an Output Parameter. ▪ The Process then shares the Tracking ID value with the Business Object Action through Input Parameters. ▪ The Tracking ID is then used in any Read, Write and Wait stage to determine which browser session the browser extension should interact with. ▪ Multiple browsers interaction is only possible if Blue Prism Launches each of the sessions, and therefore has a Tracking ID for each. Future enhancements are planned to remove this limitation. Launch Action – New Tracking ID Output Parameter © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 94 Blue Prism Modern Browser Automation 8.2 V6.9+ Training Addendum: Application Navigator In section 4.4 of this training course, you explored the use of UI Automation Navigator to help spy elements which could not be identified using the standard Identify product feature. This feature would return each of the found UI elements to an application tree, which you can then search for and select the relevant element. From Blue Prism V6.9, Application Navigator has been added to Application Modeller when using the Browser application mode. This offers the same functionality as the UI Automation Navigator but is optimized for working with HTML pages. It returns all HTML elements which make up the page to an application tree, which you can then search for and select the relevant element. Where possible, all interaction with web pages and applications should be completed using the Browser Spy mode, therefore, if there is a page element which you cannot spy using the standard spy mode, you should attempt to locate the element using the Application Navigator first. If this is not successful, then revert to using the UI Automation Navigator and other techniques. Application Modeller – Application Navigator © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 95 Blue Prism Modern Browser Automation 8.3 V6.9+ Training Addendum: Parent Document Loaded In section 6.2 of this training course, you explored the use of Blue Prism Wait stages and their importance in creating robust automated process solutions. The approach discussed was the use of multiple Wait stages to ensure the page had fully loaded before attempting any interaction. From Blue Prism version 6.9+, the ability to check if the parent document has loaded, has been added to the Wait stage. This brings the Wait stage capabilities when automating Chrome, Edge and Firefox, inline with the Wait capabilities already available when automating Internet Explorer. This new ability may remove the requirement to configure multiple Wait stages at the start of an Action, however the application page build and behaviour will determine the best solution to deploy. The Parent Document Loaded Condition is made available to the Wait stage if the element was spied using Browser mode. Once the Parent Document Loaded Condition is configured, the Wait stage will pause the flow until either the parent document of the spied element has loaded, or the Timeout value expires. Wait stage – Parent Document Loaded Condition © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 96 Blue Prism Modern Browser Automation 8.3 V6.9+ Training Addendum: Get HTML Occasionally, you may encounter difficulties in reading a value from an element within a web application or page. This could be due to slow performance reading web elements due complexity, or as a result of how the page has been constructed. From Blue Prism version 6.9, a new Action has been added to the Read stage to help with these challenges; Get HTML. This Action will extract the raw HTML for the spied element. This could be a single page element, or the HTML for the entire page. Either way, the raw HTML will be output to a Blue Prism Text Data Item and will contain the value you are attempting to read. You can parse the raw HTML to extract the desired values using string expressions and/or regular expressions. Utility Business Objects are available which provide many string expressions including regular expressions to help with parsing the value from the raw HTML. Read stage – Get HTML Action © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 97 Blue Prism Modern Browser Automation Appendix v1.01 (2020) © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism and Microsoft Edge Automation Appendix: Common HTML Tags Tag Description <a> Defines a hyperlink <map> Defines an image-map Defines an area inside an image-map <meta> Defines metadata about an HTML document Defines bold text <object> Defines a container for an external application <area> <b> <body> <blockquote> <br> <button> Defines the document body Tag <p> Description Defines a paragraph Defines a section that is quoted from another source <param> Defines a parameter for an object Single line break <picture> Defines a container for multiple image resources Defines a clickable button <pre> <progress> Defines preformatted text <div> Defines a section in a document <em> Defines emphasized text <script> Defines a client-side script, such as javascript <embed> Defines a container for an external application <select> Defines a drop-down list <fieldset> Groups related elements in a form <strong> Defines important text <footer> Defines a footer for a document or section <style> Defines style information for a document <form> Defines an HTML form for user input <table> Defines a table <frame> Defines a window (a frame) in a frameset <tbody> Groups the body content in a table <frameset> Defines a set of frames <td> <h1> to <h6> Defines HTML headings <textarea> <head> <header> <html> <iframe> <img> <input> <li> Contains metadata/information for the document Defines a header for a document or section Defines the root of an HTML document Defines an inline frame <tfoot> <th> <thead> <title> Represents the progress of a task Defines a cell in a table Defines a multiline input control (text area) Groups the footer content in a table Defines a header cell in a table Groups the header content in a table Defines a title for the document Defines an image <tr> Defines a row in a table Defines an input control like a text box or radio button <ul> Defines an unordered list Defines a list item <var> Defines a variable © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. 99 Blue Prism and Microsoft Edge Automation Appendix: Common HTML Tags i A full list of HTML tags can be reviewed at W3Schools (https://www.w3schools.com/TAGS/default.ASP). © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism Modern Browser Automation Thank you! That’s the end of your training. Please complete the course evaluation questionnaire. © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved. Blue Prism and Microsoft Edge Automation Terms of Use The training materials and other documentation (“Training Materials”) provided by Blue Prism as part of the training course are Blue Prism’s Intellectual Property and Confidential Information. They are to be used only in conjunction with the Blue Prism Software which is licensed to your company, and the Training Materials are subject to the terms of that license. In addition, Blue Prism hereby grants to you a personal, revocable, non-transferable and nonexclusive license to use the Training Materials in a non-production and non-commercial capacity solely for the purpose of training. You can modify or adapt the Training Materials for your internal use to the extent required to comply with your operational methods, provided that you shall (a) ensure that each copy shall include all copyright and proprietary notices included in the Training Materials; (b) keep a written record of the location and use of each such copy; and (c) provide a copy of such record to Blue Prism on request and allow Blue Prism to verify the same from time to time on request. For the avoidance of doubt, except as permitted by the license or these terms, you cannot (a) copy, translate, reverse engineer, reverse assemble, modify, adapt, create derivative works of, decompile, merge, separate, disassemble, determine the source code of or otherwise reduce to binary code or any other human-perceivable form, the whole or any part of the Training Materials; (b) sublease, lease, assign, sell, sub-license, rent, export, re-export, encumber, permit concurrent use of or otherwise transfer or grant other rights in the whole or any part of the Training Materials; or (c) provide or otherwise make available the Training Materials in whole or in part in any form to any person, without prior written consent from Blue Prism. © Blue Prism Limited, 2001 - 2020 All trademarks are hereby acknowledged and are used to the benefit of their respective owners. Blue Prism is not responsible for the content of external websites referenced by this document. Blue Prism Limited, 2 Cinnamon Park, Birchwood, WA2 0XP, United Kingdom Registered in England: Reg. No. 4260035. Tel: +44 870 879 3000. Web: www.blueprism.com © 2020 Blue Prism Limited. Any unauthorized use, such as distributing, copying or modifying is not permitted. “Blue Prism”, the “Blue Prism” logo and Prism device are either trademarks or registered trademarks of Blue Prism Limited. All Rights Reserved.