Forum Discussion

BMD's avatar
BMD
Contributor
4 years ago

SetText over Keys for speed

Below is a bit of code that types over 4000 characters into the comment field.  I changed the keys to SetText because it takes too long to type the charterers in to the field.  The SetText I thought would be faster but it does not work at all.  This is using Firefox version 68.5 as the browser and TC is version 14.30.  Any pointers are greatly appreciated.

Thank you, BMD

 

TheString = LOCALBuildThe4000LongString();

var PropNames = ["Name", "idStr", "Visible"];
var PropValues = ["Textarea(\"Comments\")", "Comments", true];
var Comments_TB = Sys.Browser(ProjectSuite.Variables.Browser).Find(PropNames,PropValues,20);

if ( Comments_TB.Exists == true )
{
  Comments_TB.Click();
  Comments_TB.SetText(TheString);
}

 

function LOCALBuildThe4000LongString()
{
  var String1 = "Web testing Automated. ";
  var String = "";
  for (var i=1; i<200; i++)
  {
    String = aqString.Concat(String, String1);
  }
  return String;
}

  • So the Test Complete SetText function simply does not work at all.

    I changed the code to set the Sys.Clipboard to the 4000+ text string and using the Keys("^a[Del]^v") works fine.

    Thank you for trying, BMD

     

  • No, what I mean is set a text variable to some string that is 4000 characters long and just insert that into your field.  There is no need to type 4000 characters separately every time.  Insert the 4000 and then use Keys or SetText to try to type one more in and check to see if it worked. 

  • If you're trying to check the size of the comment field, why not just put a 4000 character string in there all at once and try to type one more?  

    • sonya_m's avatar
      sonya_m
      SmartBear Alumni (Retired)

      Good thinking Marsha!

       

      BMD Will this approach work for you?

    • BMD's avatar
      BMD
      Contributor

      This is exactly what I am doing with the .Keys() function.   It takes too long to type the 4000+ characters into the field.  It types the characters in about 8 times in the comment field on different pages.  The script runs fine but takes about 45 minutes to complete.  I'm looking for ways to refactor the code and speed up the script.  I thought my description about changing from the .Keys to the .SetText function would explain that.  I have use the .Keys and is working but I'm looking to speed the script up by switching to the .SetText function.

      Thanks anyway, BMD

      • Marsha_R's avatar
        Marsha_R
        Moderator

        No, what I mean is set a text variable to some string that is 4000 characters long and just insert that into your field.  There is no need to type 4000 characters separately every time.  Insert the 4000 and then use Keys or SetText to try to type one more in and check to see if it worked.