# Find Images

> The example below explains how to identify the number of appearances of the same image
under different names. It presents activities such as [Find Image Matches](https://docs.uipath.com/activities/other/latest/ui-automation/find-image-matches) and [Find Image](https://docs.uipath.com/activities/other/latest/ui-automation/wait-image-appear). You can find these
activities in the **UiPath.UIAutomation.Activities** package.

The example below explains how to identify the number of appearances of the same image
under different names. It presents activities such as [Find Image Matches](https://docs.uipath.com/activities/other/latest/ui-automation/find-image-matches) and [Find Image](https://docs.uipath.com/activities/other/latest/ui-automation/wait-image-appear). You can find these
activities in the **UiPath.UIAutomation.Activities** package.

This is how the automation process can be built:

1. Open Studio and create a new
   **Process**.
   
   :::note
   A simple web page with a
   predefined design is needed in order to run this example. Make sure to
   create/use your own web page or to use the one provided by us in the
   downloadable example.
   :::
2. Drag a **Sequence** container
   in the **Workflow Designer** and name it **Count Errors**.
   * Create the following
     variables:

     | Variable Name | Variable Type | Default Value |
     | --- | --- | --- |
     | `CurrentDirectory` | **String** |  |
     | `XMatches` | **System.Collections.Generic.IEnumerable\<UiPath.Core.UiElement\>** |  |
     | `PagePath` | **String** |  |
3. Drag a **Sequence** container
   inside the **Count Errors** container and name it **Init PagePath**.
4. Open the **Init PagePath**
   sequence and add an **Assign** activity inside it.
   * Add the variable
     `CurrentDirectory` in the **To** field.
   * Add the expression
     `Environment.CurrentDirectory` in the **Values**
     field.
5. Place another **Assign**
   activity below the previous one.
   * Add the variable
     `PagePath` in the **To** field.
   * Add the expression
     `Path.Combine(CurrentDirectory,"DemoPage","Table.html")`
     in the **Values** field.
   * This is how your **Init
     PagePath** sequence should look:

     ![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/activities-docs-image-185530-6b1919e1.webp)
6. Return to the **Main**
   screen.
7. Drag an **Open Browser**
   activity and place it below the **Init PagePath** sequence.
   * Add the variable
     `PagePath` in the **Url** field.
8. Select the **Do** container of
   the **Open Browser** activity and create the following variables:

   | Variable Name | Variable Type | Default value |
   | --- | --- | --- |
   | `Type1Err` | **Int32** | 0 |
   | `Type2Err` | **Int32** | 0 |
9. Drag a **Maximize Window**
   activity inside the **Do** container.
10. Place a **Click** activity
    under the **Maximize Window** activity.
    * Inside the activity, click
      the **Indicate element inside browser** option. Select the **Allow
      blocked content** button like in the following gif:

      ![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/activities-docs-image-178149-d068fb16.gif)
    * In the **Properties**
      panel, add the value `True` in the **ContinueOnError**
      field.
    * Select the check box for the
      **SimulateClick** option. By doing do, the click uses the technology
      of the target application, this being the fastest method, that is also
      working in the background. If neither this option, nor the
      **SelectWindowsMessages** option are selected, then the click is
      using the hardware method, which is the slowest and cannot run in the
      background.
11. Drag a **Find Image Matches**
    activity below the **Click** activity.
    * Inside the activity, click
      the **Indicate screenshot inside browser** option. Select the desired
      button like in the following gif:

      ![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/activities-docs-image-179824-e3deded0.gif)
    * In the **Properties**
      panel, select the `COMPLETE` option from the
      **WaitForReady** drop-down list.
    * Add the variable
      `XMatches` in the **Matches** field.
12. Place a **Log Message**
    activity below the **Find Image Matches** activity.
    * Add the expression
      `"Total number of errors: "+XMatches.Count.ToString` in
      the **Message** field.
13. Drag a **For Each** activity
    under the **Log Message** activity.
    * Add the value
      `element` in the **ForEach** field and the variable
      `XMatches` in the **Values** field.
14. Drag a **Hover** activity
    inside the **Body** container of the **For Each** activity.
    * In the **Properties**
      panel, add the value `element` in the **Element** field.
    * Select the
      `COMPLETE` option from the **WaitForReady** drop-down
      list.
15. Place a **Pick** activity below
    the **Hover** activity.
16. Drag a **Pick Branch** activity
    inside the **Pick** activity and name it `PickBranch Type1`.
17. Place a **Find Image** activity
    inside the **Trigger** container.
    * Inside the activity, click
      the **Indicate element inside browser** option. Select the desired
      button like in the following gif:

      ![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/activities-docs-image-179236-e20f38ad.gif)
18. Place an **Assign** activity
    inside the **Action** field.
    * Add the variable
      `Type1Err` in the **To** field.
    * Add the expression
      `Type1Err+1` in the **Value** field.
19. Drag another **Pick Branch**
    activity inside the **Pick** activity, place it beside the previously added one
    and name it `PickBranch Type2`.
20. Place a **Find Image** activity
    inside the **Trigger** container.
    * Inside the activity, click
      the **Indicate element inside browser** option. Select the desired
      button like in the following gif:

      ![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/activities-docs-image-180764-d5761872.gif)
21. Place an **Assign** activity
    inside the **Action** field.
    * Add the variable
      `Type2Err` in the **To** field.
    * Add the expression
      `Type2Err+1` in the **Value** field.
22. Drag a **Log Message** activity
    under the **For Each** activity.
    * Add the expression
      `"Errors of type 1: "+ Type1Err.ToString` in the
      **Message** field.
23. Drag a **Log Message** activity
    under the previous **Log Message** activity.
    * Add the expression
      `"Errors of type 2: "+ Type2Err.ToString` in the
      **Message** field.
24. Run the process. The robot identifies
    the number of ![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/activities-docs-image-image_automation_2-9b5b03a0.webp) images that have the title
    `Type1` and the number of the image that has the name
    `Type2`.

[Download example](https://docexamples.uipath.com/examples/Activities/Find%20Images%20-%20Example.zip)
