Forum Discussion

ChandanD's avatar
ChandanD
Contributor
6 years ago
Solved

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.

  • Hello,

     

    With the help of the SmartBear support, I found a solution to my problem today.

     

    My TestCases are mostly request within a data-driven loop. In ReadyAPI Version 2.3.0, a new option was introduced to reduce the memory consumption during data-driven testing.

     

    In the configuration of the DataSource Loop, there is an option "Discard PASS Results with Loop".

    See following screenshot:

     

    This option needs to be unchecked, because it basically does the same thing as the "Discard Succesful Result" under the "Default Test Case Options" in the general Preferences.

     

    I hope this helps anyone who has a similar problem.

17 Replies

    • BenoitB's avatar
      BenoitB
      Community Hero

      And perhaps .. the test condition need != or ==, not a single = which is assignation .... 😄

       

       

      • ChandanD's avatar
        ChandanD
        Contributor

        Hello,

         

        I have tested with == before raising to smartbear support. With this it doesn't wait for OK button to enable and the script gets finished in OK button disabled.

    • ChandanD's avatar
      ChandanD
      Contributor

      Hello,

       

      Below is the code which I have written but still it is doing the same. Not coming out of while loop.

       

      var inprogress = Aliases.TortoiseProc.dlgTrainingsvnCheckoutTortoiseSVN
      var name = inprogress.WndCaption
      while(name="Checkout Finished!")
      {
      inprogress.btnOK.Click()
      name = inprogress.WndCaption
      inprogress.RefreshMappingInfo()

      }

      • BenoitB's avatar
        BenoitB
        Community Hero

         

        = is assign, so your condition will be ALWAYS true because you test that the assignation is done, which is always true...

        Moreover, the name variable is useless.

        Then avoid continuous click without delay between to let system act/react.

         

        I'm not sure, you want to wait the text Checkout finished and then click a button  OR you need to click a button till the text Checkout finished appears ?

         

        This click on button until the text Checkout finished appears:

         

        var inprogress = Aliases.TortoiseProc.dlgTrainingsvnCheckoutTortoiseSVN;
        while (inprogress.WndCaption != "Checkout Finished!" ) {
          inprogress.btnOK.Click();
          inprogress.RefreshMappingInfo();
          aqUtils.Delay(500);
        }
        
        

         

         

  • Hi ChandanD ,

     

    I would suggest you to use below code

    var name = inprogress.WndCaption
    while(name="Checkout Finished!")

    {

    inprogress.btnOK.Click()

    name = inprogress.WndCaption

    }

     

    You need to capture the Wndcaption again after you click OK button to make sure if the name of popup has changed or not.

     

    -Ashwin

    Please give a kudo and accept as a solution if it works

    • ChandanD's avatar
      ChandanD
      Contributor

      Hello,

       

      No. it didn't worked. 

      It is still in while loop searching for WndCaption & Ok button.