Create and test Selenium IDE flows


This article covers topics related to legacy systems. Migrate your flows created with these solutions to Power Automate for desktop or delete them.

  • Selenium IDE is deprecated and will no longer work after February 28th, 2023.
  • Windows recorder (V1) is deprecated and no longer works.

Follow these steps to create a simple Selenium flow.

Create a Selenium IDE flow

  1. Open the Microsoft Edge (version 80 or later) or Google Chrome, and then navigate to Power Automate.

  2. Sign in with your work or school account if needed.

  3. Select My flows > Desktop flows > New.

    Screenshot of the option to create a new Selenium IDE flow.

  4. Click Additional desktop flow options.

    Screenshot of the dditional desktop flow options.

  5. Select Selenium IDE, and then select Next.

    Screenshot of the Selenium IDE option.

  6. Enter a name for your Selenium IDE flow into the Flow name field.

  7. Enter the URL for the Website you want to automate into the Base URL field, and then select Launch recorder.

    Screenshot of the fields to populate the flow name and the URL.

    The Selenium IDE launches.


    Tip: You can record actions across multiple HTTP or HTTPS websites within the same tab.

  8. In Selenium IDE, select the red REC button in the top right side of the screen to launch the recorder.

    The URL you chose in the previous step opens.

    Screenshot of the Rec button.

  9. Perform the actions that you want to record on the website.


    At the bottom right, you can see the recording status.

    Screenshof of the recording status.

  10. When you are finished recording, select on the red Stop button in the top right corner of the Selenium IDE.

    Screenshot of the Stop button.

  11. Select the Run current test button from the top left side of the screen to see the Selenium IDE flow you just created run.

    Screenshot of the Run current test button.


    You can set the wait time between steps to slow the local playback for testing. This setting is for testing purposes only and has no impact when your Selenium IDE flow is deployed.

  12. Select the Save project button in the top right of the Selenium IDE. This closes, and then uploads the project.

Now that you've created a Selenium IDE flow, use it in your other flows.

Limitations and known issues for Selenium IDE flows


Passwords in Selenium IDE are stored in plain text.

Temporary user profile for playback

Selenium IDE recordings are done with the current user's profile, but playback is done using a temporary user profile. This means that websites that need authentication may not ask for credentials during a recording session, but the authentication steps will be needed during playback.

To address this, the user needs to manually edit the script to insert the commands needed for the login process.

Other limitations

  • Recording desktop applications during a Web recording session. If you need to automate both Web and Desktop applications, you can create a separate desktop flows for each type and then combine them in a cloud flow.

  • Multi-Factor Authentication (MFA) is not supported, use a tenant that doesn't require MFA.

  • These Selenium IDE commands are not supported: Run, AnswerOnNextPrompt, ChooseCancelOnNextConfirmation, ChooseCancelOnNextPrompt, ChooseOkOnNextConfirmation, Debugger, ClickAt, DoubleClickAt, Echo, MouseOut, MouseUpAt, and MouseDownAt.

  • Selenium IDE actions or steps cannot exceed one minute to run. Use Power Automate instead.

  • Right click is not supported.

  • Additional Selenium IDE flow input is generated when you use Foreach commands. To work around this issue, input any value into the extra fields. It doesn't impact the playback.

  • If the .side file contains multiple test projects, only the first one that was created runs.


    Note that the Selenium IDE orders the tests by name, not by creation date, so the first test created may not be the first one in the list.

  • Playback directly in the Selenium IDE might not behave as intended. However, playback at runtime behaves correctly.

Next steps