cancel
Showing results for 
Search instead for 
Did you mean: 

SetText over Keys for speed

SOLVED
Highlighted
Contributor

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;
}

2 ACCEPTED SOLUTIONS

Accepted Solutions
Highlighted
Contributor

Re: SetText over Keys for speed

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

 

View solution in original post

Highlighted
Community Hero

Re: SetText over Keys for speed

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. 

View solution in original post

6 REPLIES 6
Highlighted
Community Hero

Re: SetText over Keys for speed

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?  

Highlighted
Community Manager

Re: SetText over Keys for speed

Good thinking Marsha!

 

@BMD Will this approach work for you?


Sonya Mihaljova
Community and Education Specialist

Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
Highlighted
Contributor

Re: SetText over Keys for speed

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

Highlighted
Contributor

Re: SetText over Keys for speed

Maybe this will help.  The code below ONLY enters 'Keys input'.  The 4000+ long string and 'SetText input' is NOT entered.  The object is found as the .Click and the .Keys work just fine.

 

var PropNames = ["Name", "idStr", "VisibleOnScreen"];
var PropValues = ["Textarea(\"Comments\")", "Comments", true];
var Comments_TB = Sys.Browser(ProjectSuite.Variables.Browser).Find(PropNames,PropValues,20);
if ( Comments_TB.Exists )
{
  Comments_TB.Click();
  Comments_TB.Keys("^a[Del]Keys input");
  Comments_TB.SetText(TheString);
  Comments_TB.SetText("SetText input");
}

Highlighted
Contributor

Re: SetText over Keys for speed

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

 

View solution in original post

Highlighted
Community Hero

Re: SetText over Keys for speed

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. 

View solution in original post

New Here?
Join us and watch the welcome video:
Announcements
Top Kudoed Authors