Unable to come out of the While loop.
Hello,
I am scripting using Javascript. The function I am testing is SVN checkout.
The download starts and OK button is disabled. So I have a script to check the OK button is enabled. What is does it it clicks on OK button and then it is still searching for OK button. It doesn't come out of While loop.
Below is the my script. Ok button is enabled when download is completed so I am checking the name download finished and then OK button is clicked.
function downloadcomplete()
{
try
{
var inprogress = Aliases.TortoiseProc.dlgTrainingsvnCheckoutTortoiseSVN
var name = inprogress.WndCaption
while(name="Checkout Finished!") { inprogress.btnOK.Click() }
}
catch(e)
{
Log.Error(e.message)
}
}
Could you let me know why it is doing so and what is the solution to make it come out of the loop once OK button is pressed.
Please use code display to help reading. The avalialble option is visible when you click on ... and then </>
Please put image in higher size, here we can't read it.
Please never do test condition with assignment, it is useless as it will be always true (if name = 'blabla')
Please explain "The test case is passed but still it checks one more time and makes the test case fail.", i don't understand, if test passed then why checking again ?
What is exactly the problem with the previous code i given to you ?
Have you tried to use breakpoint to better understand how it runs ?
Your code is strange, what i understand is you loop while the process exists or name is equal to finished and in this loop you click every time.
As already said this is bad method:
- dont click continuously moreover when you told us that it can last 10 to 20 min.
- the test condition name equal finished is the break condition so here the only effective test is the process exists
Perhaps simply loop until the inProgress.btnOK.Enabled is equal to true (and keep a watchdog to protect yourself against infinite loop). Or use WaitProperty method.
var btn = inprogress.btnOK; var maxTime = 45*60*1000; // 45 mins if (btn.WaitProperty("Enabled", true, maxTime)) btn.Click() else throw Error("Check out not finished after 45 mins, please check manually");