Wait for Button to be Clickable

Dear Friends,

i am building a Robot, that is Downloading Files and in the Tool where i Download the Files, there is always a different Time to Finish the Process.

How can i “tell” UIPath to Wait for the Button to be Clickable, without starting the new Row in For Each Row Activity?

So before the Download isnt Finished, this Button (in Screenshot) is not Clickable.

Hi @Beere_Plays
Are you downloading files from this window or from another

Hi! Yes from this Windows

Put that activity which you are using to download put inside “wait for download activity” and give that path where file is downloading. It will monitor your folder, after complete it will move for next

This Works fine, but the “normal” Timeout is to short, can i put there a dynamic TimeOut ?

So for the Different Files, there are Different Times for the Download and i dont want a Preset Timeout.

Can i do this?

Or does the Action inside the Wait for Download be continuied after the Download is finished even if the TimeOut is way more than the Download Time ?

@Beere_Plays its little bit tricky can you see file size.

No its always different ones

So i need a Dynamic Timeout, which always ends after the Download is Finished

@Beere_Plays you can make loader custom sequence which will check file is present in folder. Call recursively untill unless you found file in folder.

@Beere_Plays but it has also limitations and perquisite-> file name which you are downloading

Before running into an XY Problem, lets focus back on the button.

As far we have understood you would like to let them bot wait till next (weiter) is activated.

So in a first analysis we would recommend to check if there is a button element attribute (use UiExplorer) that is triggering the active /enabled state

Unfortunately we missed that for some Applications in the past, but always good to check.

As Plan B we can think about:

  • reaction on text . We do see in Bearbeitung maybe someting like Abgeschlossen etc will be available once the work is done and also weiter button is activated. So we can sync the bot on this e.g. with the retry scope activity.

or

check loop: as clicking on the inactive weiter button will not harm so we can make a custom retry scope and

  • click in intervals on the weiter button
  • check if you detect something typical from next dialog step screen
  • repeat clicking or stop the custom retry scope

That is how all timeouts work. They always continue immediately when the desired action is complete, object is ready, etc.

However, Wait for Download isn’t going to work for you, because it only waits for one file. It appears you are downloading multiple files. You will need to get a count of how many files to wait for, count how many files are already in the folder, then using a Do While you wait until the number of files is two more (or however many files) than how many were there before the downloads started.

I have an automation I’m working on right now that does something very similar, but I don’t have to first count how many files are in the folder - because I know I’m downloading into an empty folder.

I use Find Children to see how many reports will be downloaded:

image

Then I click the first report:

image

If there is more than one report then I shift-click the last one:

Then for me it’s a keyboard press to begin all the file downloads.

Then I calculate a total wait time that comes from a config file:

image

And here is my Do While that checks for all the files to be downloaded:

Thank you alot for the Answer, but unfortunately i dont know how many Files are going to be Downloaded, cause the quantity of files are always different, so i need a way to continue after the Download is ready.

So when the Download is Ready, the “weiter” Button changes into “Fertig Stellen”, maybe i could configurate the bot that, when the “fertig Stellen” button is there.

I think i could do this with a do while loop?

here we have the match to our suggestion

so you can start with syncing the bot on this with a retry scope activity

and give within the condition an element exists to this particular button having the text Fertigstellen

Doesn’t the fact that there are two files shown in the window mean there will be two files downloaded? You can count objects in the window.