EggPlant Release Notes
EggPlant Release Notes
Release Notes
The notes below provide descriptions of the new features and changes introduced
with each release of eggPlant. You are strongly encouraged to read about the
relevant changes whenever you upgrade from an earlier version.
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Compatibility
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
––––––––––––––––––––––––––––––––––––––––
• Corrected a display issue that could cause the edges of the Viewer
window to be hidden. This did not impact script execution.
• OCR Update panel now allows Use Info and Copy features when
multiple matches are found.
• In the script editor, clicking on an image token now shows the same
preview pop-up that is available when using auto-complete.
––––––––––––––––––––––––––––––––––––––––
Connection Improvements:
––––––––––––––––––––––––––––––––––––––––
Scripting Improvements:
• Fixed a compatibility issues introduced in v16 with the ClipRectangle
property. ClipRectangle once again calculates the HotSpot before
clipping is applied. The v16 CropRectangle still applies the HotSpot
after clipping.
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
• New Image Editor that allows you to mask colors, crop the image
rectangle, and include/exclude pixels.
• OCR Update panel that helps diagnose and suggests corrections for
failed OCR text searches.
––––––––––––––––––––––––––––––––––––––––
• In the Suite window you can now disable/enable the various side
sections to hide areas you don’t use.
• From the Image tab you can now access an edit mode:
⁃ Crop
⁃ Erase individual Pixels
⁃ Restore Erased Pixels
⁃ Remove Color Ranges
⁃ Exclude all except a Color Range
• During an Image capture you can choose to save your image into an
alternative suite (preferably a Helper suite).
• OCR Update panel that helps diagnose and suggests corrections for
failed OCR searches.
––––––––––––––––––––––––––––––––––––––––
Scripting Improvements:
• In the Suite window you can now disable/enable the various side
sections to hide areas you don’t use.
• We will now honor any alpha values in Images using the Precise text
search type.
––––––––––––––––––––––––––––––––––––––––
Connection Improvements:
• eggPlant now has predefined keyboard definitions for RDP. In
addition to our definitions users can create their own versions of
these files for other languages. Select your preferred language from
the Control menu
––––––––––––––––––––––––––––––––––––––––
Scripting Improvements:
• Improved Table Scripts to reload the data file when editing new lines.
• Fixed some compatibility issues introduced in v15 with extras
parentheses
•
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––
Connection Improvements:
––––––––––––––––––––––––––––––––––––––––
Scripting Improvements:
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
• Variable Watcher allows you to view and edit variable values during
script execution.
• Table tests now support Data Driven execution to iterate over values
stored in a CSV table.
––––––––––––––––––––––––––––––––––––––––
Connection Improvements:
• Added options for Mobile VNC connections to scale the remote screen size
down. Optionally allows scaled screens to be blended (for compatibility
with older VNC servers).
⁃ Note: Requires iOSGateway 2.6 or Android Server 2.6.
––––––––––––––––––––––––––––––––––––––––
• The Run window now has a variable watcher in which you can watch
variable values while a script is running.
Options include the scope of variables shown and the frequency of variable
updates (continuously or only when the script is paused).
• You can now click script and image names to edit the on Windows, rather
than having to use the Rename menu item.
• The AHDB in the Run Window will now expand when multiple lines of text
are entered into it.
• In the script list you can enable a color-indicator to show which scripts are
enabled for Table Actions.
––––––––––––––––––––––––––––––––––––––––
Scripting Improvements:
• Tables can now specify an optional CSV Data File. When specified the
table actions will be repeated for each row in the file. The first row must
contain column headers. Values for each column can be used in the
Action or Expected Value field by using $HEADER_NAME.
• Tables can now specify the return value from previous lines for use in
Action or Expected Value fields. You can refer to the results of particular
line with #LINE_NUMBER or #prev for the immediately preceding line.
• The answer command has been extended with "from list", "multiple", and
"default answer" options. Example
––––––––––––––––––––––––––––––––––––––––
Connections:
• Fixed some issues where a screen size change would not be properly
detected at the script level.
• Fixed some problems where the connection list did not update with
connections made from scripts.
• Fixed some problems getting a range exception when working in the
connection list.
• Fixed a problem with the Bonjour discovery preference not being
honored.
• Fixed a problem where RDP connections couldn’t be re-established
after the connection was closed externally.
• Fixed a problem making some RDP connections from the command
line.
• Added support for WindowsAltKey to RDP connections.
• Fix mapping of F11 for RDP connections.
• Corrected an issue where local Android device names and serial
numbers could fail to display correctly.
• Properly display names of eggCloud devices.
• Fixed a problem with reservations from eggCloud reporting the wrong
time.
• Resolved an issue with very slow startups when the configured
eggCloud server couldn’t be reached.
• Fixed a problem where connecting to an eggCloud SUT using a rule
would sometimes connect to the wrong SUT.
Scripting:
• Fixed a crash that could occur when closing a suite while a Table Test
was running.
• Fixed several formatting issues in the Tables with values overflowing
their cells.
• Fixed a problem where Tables could become disassociated with the
scripts they were calling.
• Fixed a problem with TypeText HomeButton
• The RemoteWorkInterval will now be checked before Pinches take
place.
• Attempting to copy files to/from a SUT will now throw an error if there
is no connection.
• Dramatically improved memory usage with OCR commands.
• Fixed an occasional timing issue when specifying ValidWords for an
OCR search.
• Better error messages when attempting to perform an invalid OCR
operation.
• Fixed a problem where very long return values (e.g. from a URL read)
would not be displayed properly on Windows
User Interface:
• Deleting all logs for a script will now remove the script in the Results
list.
• Much better recording of Drag and Drop events in Turbo Capture
mode on Windows and Linux.
• Fixed a problem opening results in other Suites from Schedules.
• Fixed a problem where aborted Schedules would show scripts with a
success status.
• Fixed a problem where tolerant images would display as if they had
the Pulsing search type selected.
• Fixed a problem where the HotSpot would be re-set to the middle
when an image was recaptured using the Update Image Panel.
• Images fixed using the Discrepancy Search in the Update Image
Panel will now use absolute pixel values rather than a percentage.
• Fixed a problem saving recaptured images to a helper suite from the
Update Image Panel.
• Fixed a problem where the last line of a script was ignored by the
Trace feature.
• Cleaned up many formatting issues in the Preference Panes.
Misc:
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
––––––––––––––––––––––––––––––––––––––––
Connection Improvements:
Scripting Improvements:
• Made ranges evaluate correctly when different units were used for
the endpoints.
• Fixed a problem where predefined variable would not act as empty
when they were modified.
• Normalized the line ending when reading text at a point and at a
rectangle.
• Fixed a problem archiving property keys with non-identifier
characters.
––––––––––––––––––––––––––––––––––––––––
• Corrected an issue where license were not release when eggPlant was run
from the command line or terminated abruptly.
• Fixed problems where the RunHistory.xml file could become corrupted.
• Fixed problems with eggPlant responding sluggishly/not responding.
• Fixed a problem reading non-ascii characters from databases.
• Provide feedback if Bonjour/Zeroconf is not enabled.
• Fixed a hang when a connection drops during a CaptureScreen.
• Cleared an exception that could occur with Show Image Usage.
• Fixed a condition that could occur when using the ValidWords property on
a Text Image search.
• No longer update the SuiteInfo file if we haven’t modified script metadata.
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
• Tables now allow you to define ACTIONS from scripts with spaces in
their name.
––––––––––––––––––––––––––––––––––––––––
Scripting Improvements:
• Added the ability to copy files to/from the iOS Gateway. Use the copy file
… to … syntax with sut: before the filename to indicate a remote file.
• Added the ability to install and sign applications to iOS Gateway controlled
SUTs. Use the InstallApp command, which takes the ApplicationPath
key as a reference for the file to install. It can begin with sut: to specify a
file on the iOS Gateway machine. Optionally you can also specify a mobile
provision file with ProvisionPath to use to resign the application. Again
you can use sut: to specify a file on the iOS Gateway machine. Finally
CertificateName must be a valid Certificate Name that has been stored in
the keychain on the iOS Gateway machine.
installApp (applicationPath:"/Users/paul/Desktop/
YetAnotherSampleApp.ipa",
provisionPath:"sut:/Users/paul/Library/
MobileDevice/Provisioning Profiles/0c7acd92-
b4fc-4295-9938-58b759287d3f.mobileprovision",
certificateName:"iPhone Developer: Paul Landers
(7JZCTVR53Z)")
––––––––––––––––––––––––––––––––––––––––
• Fixed several memory problems related to the Update Image Panel that
could lead to crashes and unexpected behavior.
• Fixed crashes on Windows when using RDP from CLI without the user
having a proper %HOMEPATH% (i.e. Jenkins),
• Fixed several inconsistencies with the Team License Server reporting of
which licenses are in use.
• Fixed a problem with how renamed scripts were handled by the Tables and
Results system of the Suite.
• Fixed a problem with Clipboard sharing in Live mode using eggMan.
• Fixed errors caused when passing whitespace or empty values as
ValidWords of an OCR search.
• Fixed a problem where negative values for the repositionPoint were not
properly honored.
• Updated ADB to use the newest version.
• Fixed a problem with incorrect content-length specifications from eggDrive
with non-ASCII characters.
• Fixed a problem where you could start a recording while a script was
running.
• Fixed a crash when inserting text before and after a string at the same
time.
• Added some improvements for Text-Image-Generation to handle the the
Error: No Error exception.
• Fixed some problems Removing All Breakpints.
• Fixed a problem with any predefined variable whose value is a list or a
property list not being correctly treated as a list or as a property list in some
contexts.
• Fixed a problem calling ScriptResults when the script was called from a
Table.
• Fixed the standardFormat for data, color, and date/time values.
• Fixed the join command and joined by operator to correctly treat a range
as a list and join its values.
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
• Added the ability to drop Image names into in Keyword Driven Tables.
––––––––––––––––––––––––––––––––––––––––
Scripting Improvements:
• Fixed a problem where the last line of a script was not traced.
• The “in” option of the read command can now also be specified as
“timeout”, “timeout in”, or “time out after”.
• Fixed the sin(), cos(), and tan() functions to properly handle parameter
values in rotational units other than radians. Updated the atan() function to
return a value with units of radians (which can easily be converted to
degrees or other units of rotation).
put sin(90 degrees) — 1
put atan(1) as deg — 45 degrees
• Fixed the diskSpace() function, the size property of a file or folder, and the
memorySize and physicalMemory properties returned by the
systemInfo() function to return values with units of bytes (which can easily
be converted to GB or other units of dataSize).
• Fixed a bug with the URLDecode() function that would hang or throw an
exception if called with a string containing a ‘%’ not followed by two
hexadecimal digits.
• Fixed a bug that would throw an exception for some forms of the delete
command that resulted in an empty string.
put "a" into foo
delete "a" in foo — this worked fine
put "a" into foo
delete the first "a" in foo — this would throw an
exception
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
RDP Improvements:
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––
Scripting Improvements:
• Improved the OCR ValidPattern to automatically include other marks
in the pattern (like percent symbol: %).
• Dramatically Improved execution time on scripts that had thousands
of posted results
• Fixed a problem where minutes were treated as seconds.
• Fixed a problem where username and password in a property list
were not always honored for RDP connections.
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
––––––––––––––––––––––––––––––––––––––––
Turbo Capture:
• You can now generate scripts using the new Turbo Capture feature,
- interacting with the SUT in live mode and then naming your images
afterwards.
⁃ Get started by hitting the Start Session button on your toolbar
or by selecting Start Turbo Capture Session on the Control
menu.
⁃ Interact with your SUT in live mode to perform a sequence of
steps and then End Session when you are finished.
⁃ NOTE: If you want to record a mouse move (without a click)
tap the Shift key.
⁃ Name your session, if you want, and then use the Open
Session button to review your workflow and begin naming and
adjusting your images.
⁃ You can stop at any time and return later, your progress is
saved automatically.
⁃ When you are finished, hit the Generate Script button to
record all the images and create your script.
⁃ Read Full Documentation Online
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––
Scripting:
––––––––––––––––––––––––––––––––––––––––
• Added units support. Numeric values may now include a unit name to
identify the type of value. SenseTalk is aware of the relationships
between different units and automatically converts to compatible units
as needed during calculations or when requested.
• Many unit types are recognized, and more will be added in the future.
The unitTypes() function gives a list of all of the different categories,
including synonyms in some cases.
⁃ put the unitTypes
• Many unit names are recognized for each type, including singular,
plural, and abbreviated names for many units. The complete list of
unit names is given by the unitNames() function (there are
thousands of unit names).
––––––––––––––––––––––––––––––––––––––––
• We now back record helper suites so you can see which other suites
are "helping"
• Opening logs that are in a helper suite will no longer raise an
exception.
• Nonexistent suites will no longer show up in the Open Recents menu.
• Fixed an occasional hang when running a script from Command Line.
• Fixed a number of license messages that were unclear when no GUI
license is found.
• Added a LogWarning when an Ask/Answer panel is called while
running from in command line mode.
• Added the ability to duplicate a Schedule.
• When pasting "fancy" quotes from external sources into a script we
will now convert them to standard ASCII quotes to prevent parsing
and compiling problems.
• Fixed an occasional crash when connecting to a SUT.
• Added a feature to temporarily freeze the remote screen to simplify
capturing images of transient UI elements.
• Fixed an occasional hang when running a script from Command Line.
• Added keyboard shortcuts to switch between open tabs in a suite.
Command+Shift+[ and Command-Shift+] on Mac
Control+Shift+[and Control+Shift+] on Windows/Linux
• Fixed a problem where Function key shortcuts didn’t show in the
menus.
• Now includes CaptureScreen among the list of "interesting" log lines
when filtering.
• On Mac 10.9 and 10.10 we have modified eggPlant Functional to not
AppNap. This power saving feature caused disruptions to scripts
running in the background.
• Fixed a rare crash when launching a VNC server on Android over
USB.
• Applying an image "Fix" from the results will reflect that change on
any open copies of the image.
• When selecting an image from the screen during Update Image the
replacement image will no longer grow by 2 pixels in both
dimensions.
• Fixed a problem with mousing over strings that corresponded to
Windows named ports (like PRN or COM1).
• Fixed some problems with Copy/Paste throwing NSRange
exceptions.
• Fixed some exceptions that could happen when customizing the
Remote Window Toolbar.
––––––––––––––––––––––––––––––––––––
Viewer Window:
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
––––––––––––––––––––––––––––––––––––––––
Viewer Window:
• Zoom In/ Zoom Out menu items. Added these zoom commands to
the Control menu, enabling you to zoom in and out in the Viewer
window.
––––––––––––––––––––––––––––––––––––––––
Scripting Enhancements
• Mixed fractions like "6 5/8" are now supported provided there is a single
space character between the whole number and the fraction and no spaces
around the '/' character.
put 1 3/4 is 1.75 -- true
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Scripting:
• Added support for using the Alt-GR key (Right Alt Key) for auxiliary
keyboard functions. If you prefer having a right hand Alt modifier key
please set the following preference
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
• Toolbar buttons for the HomeButton and RotateMobile commands
• Additional image preview in script results
• Several bug fixes
––––––––––––––––––––––––––––––––––––––––
Viewer Window:
––––––––––––––––––––––––––––––––––––––––
Script Results:
• Image Previews for Images that Were Not Found. It has been the
case that when you click on a line that references a found image in
your script results, a preview of that image is shown. Now that same
behavior also applies to lines that reference an image that was not
found.
––––––––––––––––––––––––––––––––––––––––
• Fixed an issue that could cause eggPlant on Mac to not properly report a
Tolerant image search type.
• Fixed an issue where an expiring license warning could show up BEHIND
the splash panel, which made it appear that the launch had hung.
• Fixed an issue on Windows and Linux where a Suite would store it’s default
Results directory as a Results OVERRIDE (which would then persist if the
suite was moved or copied).
• Fixed an issue that could cause eggPlant to crash when you were saving a
new image.
• Fixed an issue that could cause eggPlant to hang when the Update Image
panel opened.
• Fixed an issue that would cause eggPlant to falsely report that it had
previously crashed.
• Changed the behavior of full-screen VNC refreshes. Previously, eggPlant
could close and re-open your VNC connection on a full-screen refresh; this
is no longer the case.
• Fixed an issue that was causing the Connection List filter to not work on
Windows and Linux systems.
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
––––––––––––––––––––––––––––––––––––––––
Interface:
• Update Image Panel. Expanded the former Image Doctor panel with
the following features:
⁃ An OCR search heuristic, which reads text in your image and
attempts to find instances of that text on the screen
⁃ A Prior Location heuristic, which shows where your image was
last found in a completed test.
⁃ The New Representation field, in which you can set a suffix
with which to auto-name new images added to collections
⁃ The Properties feature, which shows the properties that are
being used for your current image search, including the default
properties of your image, and properties that are overridden at
the script level.
• Diagnostic Menu. This new menu allows you to choose the image-
searching heuristics that are used in the Update Image Panel.
• Mark Prior Result. From within a Scripts Results panel, you can
mark which run you want to use as your “Prior Result” for use by the
Prior Location Heuristic on the Update Image Panel.
• Insert Repeat Loops. From the Script Insert tool you can highlight a
block of your test script and create a repeat loop around the section.
• insert test cases. Also from the Script Insert tool you can highlight a
block of your test script and turn it into a TestCase.
––––––––––––––––––––––––––––––––––––––––
eggCloud Integration:
––––––––––––––––––––––––––––––––––––––––
Scripting:
• WaitFor property. WaitFor can now be a property of any image-
searching command. Like the WaitFor command, the WaitFor
property is the maximum time eggPlant will wait for the given image
to appear on the SUT. Example:
Click (image: “Done_button”, waitFor: 2 minutes).
• The predefined variables yes, no, on, and off are now treated as native
boolean values. This allows the equal operator to compare them as equal
to true or false (when Normal boolean comparison is in effect, see below).
• Fixed the move file and copy file commands to work correctly when the
source file is specified with a path beginning with "~".
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
––––––––––––––––––––––––––––––––––––––––
Licensing:
• eggPlant now supports the ability to enter a license key from the
command line by passing the -LicenseKey and -LicenseUser.
After applying the license eggPlant will immediately terminate with
success condition (0) if the license was accepted.
Mac/Linux:
Eggplant.app/runscript -LicenseKey "xxx-xxxx-xxx" -
LicenseUser "zzzzz"
Windows:
eggPlant/runscript.bat -LicenseKey "xxx-xxxx-xxx" -
LicenseUser "zzzzz"
––––––––––––––––––––––––––––––––––––––––
Connection List:
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
––––––––––––––––––––––––––––––––––––––––
Compatibility
• Mac OS X 10.7, 10.8, 10.9
This release is compatible with Mac OS X 10.7 and higher, Mac OS X
10.6 and below are no longer supported.
• Windows XP, 7, 8
This release is compatible with Windows XP, 7 and 8. Please be aware
that releases AFTER April 8th, 2014 will drop Windows XP compatibility.
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––
Interface
• Image Scaling and Rotation. The Image interface now allows you to
specify the default scale and rotation values to use when an image is
searched for. This value can be overridden in a script.
• Auto completion in scripts has been added for Windows and Linux
versions of eggPlant. You can trigger completion by hitting the
Escape key or selecting "Edit->Complete" from the Menu. The editor
will attempt to complete your statement with a valid eggPlant
Command, constant image name, script name, or variable from your
current script.
––––––––––––––––––––––––––––––––––––––––
Connection List:
• The Connection List now has a filter field to narrow down the
connections shown by display name. If you are using the eggCloud
device-reservation system, you can also filter the Connection List by
SUT operating system, version, and meta tags.
• The Connection List now will now show devices available from an
authenticated eggCloud system. You are able to create reservations
and connect to reserved devices directly from the connection list.
• You can now choose the columns that you want to view and hide in
the Connection List. From the Connection menu, use the Customize
Columns submenu to select the items you want to see.
––––––––––––––––––––––––––––––––––––––––
Scripting:
• Added other mobile commands that behave the same way as their
conventional counterparts:
⁃ Tap = Click
⁃ DoubleTap = DoubleClick
⁃ Press = MouseDown
⁃ Release = MouseUp
• Added a new syntax for comparing two values for equality: val1 and val2
are equal.
put 5 * 3 and 15 are equal
put "CAT" and "cat" aren't equal considering case
• Added the same as as a synonym for equal or equal to. The following all
report 'true':
put 5 * 3 is the same as 15
put 4 + 6 isn't the same as 2 * 12
put "cat" and "dog" are not the same
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Highlights:
––––––––––––––––––––––––––––––––––––––––
Interface:
––––––––––––––––––––––––––––––––––––––––
Scripting:
––––––––––––––––––––––––––––––––––––––––
Mobile:
––––––––––––––––––––––––––––––––––––––––––––––––––––
Release v12.21 (19-May-2013)
Highlights:
––––––––––––––––––––––––––––––––––––––––
Android Support:
––––––––––––––––––––––––––––––––––––––––
Scripting:
––––––––––––––––––––––––––––––––––––––––––––––––––––
Release v12.20 (25-April-2013)
Highlights:
––––––––––––––––––––––––––––––––––––––––
Image Scaling:
• You can now add a Scale property to an image search, to indicate a scale
multiplier (or list or range of scale multipliers) if you expect an image to
appear at a different size than was originally captured.
• You can use the DefaultScale property in a script, to set the scale value for
all of your images. (Setting the scale value on an individual image overrides
the DefaultScale.)
• You can use the Scale: Auto property in a script, to set the scale value
based on the size of the current SUT relative to the size of the original SUT.
––––––––––––––––––––––––––––––––––––––––
User Interface:
Image Usage
• In the contextual menu in the Image list in your suite, you can choose Show
Image Usage to find out which images are used in scripts. Images that are
used in scripts are shown in green. Unused images are shown in red.
Image Browser
• In the new image browser at the bottom of the image tab, you can now see
the siblings of your selected image. If you select one of these images, it is
shown on the same image tab. If you select another image in the image list,
a new image tab opens.
Run Window
––––––––––––––––––––––––––––––––––––––––
Scripting:
• Added a monthName() function to give the name of the month of any date,
or of the current date if no parameter is given. An adjective may be used to
request long, abbreviated, and short forms of the name.
put the monthName
put the abbreviated monthName of "7/4/1776"
• String literals prefixed by the '@' sign may now include backslash escape
sequences.
• Allow the word given to be used between a handler name and its formal
parameters.
to calculateArea given length, width
• Updated the STTreeNode XModule to version 3.1. Tree nodes can now be
deleted using a node expression (previously only item expressions worked
with the delete command for deleting tree nodes):
delete node "product/description" of order
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––
Release v12.11 (19-February-2013)
Highlights:
––––––––––––––––––––––––––––––––––––––––
Scripting:
• Fixed a crash that could occur with pass message and continue and also
fixed it to properly set the result when a value is returned by the passed
message.
• List expressions can now be written using square brackets [ ] instead of
parentheses ( ) or curly braces { }. This allows most JSON or JavaScript literal
expressions to be evaluated by the value() function, or to be copied and
pasted directly into a SenseTalk script and used as a valid expression. Note
that there are still some incompatibilities, however, most notably the use of '\'
escape codes in JavaScript strings which are treated literally by SenseTalk.
• The numberFormat property can now be set to "Words" to display numbers
formatted as words. To include digits after the decimal point, "words" can be
followed by a decimal point and a combination of "0"s and "#"s as in other
numberFormats:
set the numberFormat to "WORDS"
set the numberFormat to "Words.00##"
• Fixed an inconsistency with numeric comparison using the greater than or
less than operators that would sometimes report one number as being greater
than or less than another very close value even though the equals operator
would report them as being the same (due to the difference between them
being less than 0.00000000001). Numbers that are so close in value that they
compare as equal will no longer also compare as different.
• Setting the defaultStringEncoding to an invalid value will now throw an
appropriate exception.
• The word each is now optional in some repeat statements:
repeat for x in 3..12 -- same as repeat for each x
in 3..12
repeat with term in words 3 to 12 of phrase
• A very abbreviated repeat statement that omits the word in or of (and even the
word with) is now available when working with an iterator (such as a list) using
the default it as the repeat variable:
repeat with 3..12 -- same as repeat with each in
3..12
repeat with (dog, cat, hamster) -- repeat with
each item in
repeat (red, green, blue) --
• Added a variation of the repeat until and repeat while statements that will
execute the statements within the repeat loop at least once before checking
the condition:
repeat at least once and continue until
<condition>
repeat one time and until <condition>
repeat one time and continue while <condition>
repeat at least once while <condition>
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––
Release v12.1 (18-January-2013)
Highlights:
––––––––––––––––––––––––––––––––––––––––
Licensing Improvements:
The TeamLicenseServer interface is a single window with two areas. The top
part of the window provides information about the Team License Server itself
including the name and number of its own license, the host id of the machine it
is running on, and the server status.
The lower part of the window shows a continuously-updated list of all of the
eggPlant instances that are currently running using team licenses that are
linked to this server. Information given about each eggPlant instance includes
the license number, the maximum number of users for that license, the host
machine and user account where eggPlant is running, and the length of time
(in hours and minutes) that eggPlant has been running on that machine.
• Node-locked licenses may now optionally include support for running eggPlant
in Drive mode.
––––––––––––––––––––––––––––––––––––––––
• Support for using Korean text has been added or enhanced in the following
areas:
The script editor now implements entering Korean text through the IME on
Windows. This support extends to other text entry fields as well, including the
names of scripts, images, and SUTs.
The TypeText command can type all asian characters on Android SUT devices
running the VMLite VNC server.
The new TypeHangul command breaks Korean characters down into jamos
and types them on the SUT.
For TypeHangul to work, a Korean IME must be active on the SUT. If the
Windows Hangul/English IME toggle is visible on the SUT, TypeHangul will
toggle between Hangul and English as necessary; otherwise, your scripts
must keep track of the current state of the IME and perform the actions to
toggle as needed.
Korean text is now properly displayed in the top half of the Run window, and in
the Name column of the Connection List panel.
––––––––––––––––––––––––––––––––––––––––
User Interface:
• A Script Info button (blue circle with the letter "i") has been added to the toolbar
in a Script tab. This button will show or hide a number of items of information
above the script, including: Length (this will update as the script is edited to
show the length of the script); Modified (the date and time the script was last
saved); Created (date and time the script was created); and Description (an
editable field for entering any descriptive information about the script, which
will be saved with the suite).
• The Color Picker tool (Magnifying Glass) on the Color Panel now works within
eggPlant on all platforms.
––––––––––––––––––––––––––––––––––––––––
Scripting:
• Added push, pop, and pull commands to facilitate use of lists as stacks and
queues. The push command adds items to a list, and the pop and pull
retrieve values from a list while also removing those items from the list.
The push command is simply a synonym for the insert command. In its most
basic form it simply adds an item to the end of a list:
push 7 onto myStack
The pop or pull commands can then be used to retrieve values from the end
or beginning of a list, respectively. To use a list as a LIFO (last in, first out)
stack, simply push values onto the stack and then pop them off again in the
reverse order:
push "A" onto myStack
push "B" onto myStack
pop myStack into x -- x is now "B" and "B" is
deleted from myStack
pop myStack into y -- y is now "A" and "A" is
deleted from myStack
To use a list as a FIFO (first in, first out) queue, push values onto end of the
queue and then pull them from the front of the queue in the same order that
they were added:
set waitingList to an empty list
push "A" onto waitingList
push "B" onto waitingList
pull from waitingList into x -- x is now "A"
pull from waitingList into y -- y is now "B"
The pop and pull commands can also be used to obtain values from the
middle of a list, from a nested list, or to obtain multiple values at once. If a
destination container is not specified, values removed from the list are put into
it:
set source to "a".."z"
pull item 14 of source into x -- x is now "n"
push (A,B,C) into item 13 of source -- item 13 is
now (m,A,B,C)
pop from nested item 13 of source -- sets IT to C,
item 13 to (m,A,B)
pop the last three items of source into tail --
tail is now (x,y,z)
pop items (2,5,1,4) of source into z -- z is now
(b,e,a,d)
• Updated the STTreeNode XModule to version 3.0. This release improves the
functionality of node (XPath) expressions, fixing a problem on recent versions
of Mac OS X and (optionally) correcting node expressions to work more
consistently with the XPath standard, and consistently across platforms.
Specific changes include:
Fixed a bug on Mac that would throw an XQuery Error 6 exception for any
node expression beginning with "/" or "//" unless the tree was created with the
DocumentTreeFromXML() function. These node expressions will now behave
the same on all systems regardless of the standardNodeExpressions setting.
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––
Release v12.02 (12-December-2012)
Highlights:
––––––––––––––––––––––––––––––––––––––––
• Removed the "Quit After Next Script Run" option when closing the last window
on Windows, which would cause eggPlant to hang.
• Fixed a problem that could prevent another suite from being opened while a
script is running, paused, or previously run in some situations.
• Eliminated some error messages while installing on Ubuntu 11.04+.
• When submitting a bug, question, or feature request, the pre-supplied
description text now matches the type of request.
• Fields in the bug report / question / feature request window are now cleared
only when the panel is closed or submitted.
• After creating and naming a new script, the focus is now set to the script editor,
ready for user input.
• Fixed a problem in which a modified script that had been previously changed
and closed, could be closed without the user being prompted to save their
changes.
• Fixed a problem with the state and arrangement of windows not always being
remembered and restored properly.
• Fixed a problem with running a script from the command line that would
require at least a partial path including the script's suite.
• Fixed a problem that would sometimes report an exception when quitting with
unsaved changes and choosing to save all scripts.
• Changed the title of the "Settings" button to "Settings…" to make it clear that it
is a button that opens a tab.
• Fixed a crash when an image tab was closed while performing an Image
Doctor search.
• The Run Selection button is now disabled when a script is running.
• Fixed a problem with the F8 - F12 items on the TypeText pulldown menu
generating digits rather than the correct code.
• Improved the behavior when attempting to use the CaptureScreen or
TraceScreen command to save an image to an invalid location (with
insufficient privileges or unreachable path). An appropriate message will now
be reported.
• Fixed a problem with some exception logs that would display incorrect
information in the results tab.
• Fixed an issue that would sometimes fail to select the name of a newly-created
script for ease of naming it.
• Fixed a crash that could occur when running a script from another using
RunWithNewResults.
• Fixed a crash that could occur on Windows or Linux when searching in a suite
containing many images.
• Fixed a crash that could occur on Mac OS 10.6 when closing a suite window.
• Fixed a problem that could throw an exception when clicking the Image Doctor
button.
• Fixed a crash that could occur when changing platform types or styles on the
Text Preferences pane.
• Fixed an issue with the suite window interface occasionally appearing to
"freeze" on Windows.
• Fixed a problem in which the detailed result log displayed on a result tab could
be for a different (previously selected) run date than the run date currently
selected in the upper list in some situations.
• Fixed a crash that could occur sometimes on Windows and Linux when typing
in a panel after closing a suite.
• Fixed an exception that could occur when dragging an image into a script in a
different suite.
• Fixed an issue in which the same script could be open in multiple tabs in the
same window, sometimes leading to a crash or hang.
––––––––––––––––––––––––––––––––––––––––––––––––––––
Release v12.01 (11-November-2012)
Highlights:
––––––––––––––––––––––––––––––––––––––––
• Fixed a problem accessing the GUI for the Floating License Servers.
• Fixed a problem that would erroneously display a panel warning of unsaved
changes when closing a suite window (Windows).
• Fixed a problem that would throw an exception when accessing the Run
Options preferences (Windows) if you had installed over a previous version of
eggPlant.
• Fixed a problem with suite windows which were open on a second monitor
being moved to the main screen when eggPlant is relaunched.
• Fixed a problem in which using Command-w (or Control-w) to close a script
tab would not warn of unsaved changes.
• Fixed a problem with screen colors being displayed incorrectly (blue) when
connecting to certain RealVNC mobile servers (Mac).
• Added the Documentation item to the Help menu (Mac).
• Fixed a problem that would give the message "Command string selected a
bearer that could not be loaded" when connecting to some mobile devices
(Windows).
• Fixed the Cancel button when searching with the Image Doctor.
• Fixed an NSInvalidArgumentException that could occur when using the Image
Doctor.
• Fixed the Show Resource item on the Edit menu.
• Fixed the Comment/Uncomment item on the Edit menu.
• Fixed the Current Script item on the Window menu.
• Fixed the Open Recent submenu on the File menu to show a list of recently
opened suites (Windows and Linux).
• Fixed a problem with the Show Script button on the alert panel for a script
failure, that would open the documentation in a browser.
• Fixed an issue that a script name did not stay selected after renaming it.
• Fixed an issue with a collapsed left-side navigation area popping open again
when the window is resized.
• Fixed an issue with long script names being truncated in the script list
(Windows and Linux).
• Fixed a display issue with editing of long script names in the script list
(Windows and Linux).
• Fixed a problem accessing the Context Menu in the Navigation Area (Mac
10.6).
––––––––––––––––––––––––––––––––––––––––––––––––––––
Release v12.00 (30-October-2012)
Highlights:
––––––––––––––––––––––––––––––––––––––––
Compatibility
If needed, the prior behavior can be enabled through any of the following
mechanisms:
––––––––––––––––––––––––––––––––––––––––
Each Suite now has just one window which displays any scripts being
edited in that suite as well as the images, results, schedules and other
information for that suite in a tabbed interface.
• Left-Side Lists:
On the left side, each Suite window displays lists of all of the scripts,
images, results, and schedules in the suite. Double-clicking any item in
these lists will open a tab displaying that script, image, result history, or
schedule. In addition, a Settings button will open a tab displaying
settings and helpers for the suite.
The relative sizes of the lists on the left side of the suite window can be
changed by dragging the section titles up or down.
• Unified Search:
The search field above the lists filters all of the lists by name and/or
(where appropriate) by contents. For a script, the content is the script
itself. For an image the content is its description, and for a schedule the
content is the names of the scripts in the schedule. The magnifying
glass icon presents a menu to select the type of search to use, as well
as a history of recent search terms (press return after entering a search
term to add it to the history list).
• Tabbed Interface:
Drag any tab out of a suite to create a new window, or drag a tab into the
tab bar of another window for the same suite (you can't drag a tab to a
different suite).
All open tabs in the suite window are remembered when the suite is
closed and will be restored when the suite is next opened.
• Scripts:
• Images:
The action menu for Images includes a Create Collection option which
will immediately create a new image collection containing all of the
selected images.
• Results:
The Results list shows the names of all scripts for which results are
present in the suite. Opening a tab for a given script's results shows a
list of every individual execution of that script, identified by the run date
and time.
• Schedules:
A suite may now include multiple schedules (lists of scripts that can be
run as a batch). Each schedule is given a name when it is created. If the
runscript command is used to run a suite from the command line, it
runs the first schedule for that suite. Or a specific schedule can be run
by including a slash and the schedule name at the end of the suite path.
For example, this command would run the first schedule in
MySuite.suite:
/Applications/Eggplant.app/runscript /path/to/
MySuite.suite
This command would run the schedule named "SmokeTest" in the same
suite:
/Applications/Eggplant.app/runscript /path/to/
MySuite.suite/SmokeTest
• Settings:
The Settings tab incorporates the contents of both the previous Helpers
tab and Settings tab, plus some new settings. Helper suites for the script
can now be disabled or enabled by clicking a checkbox for each suite.
• Also:
A status field at the bottom of the suite window displays the name of the
currently running script.
The Info drawer has been eliminated, and the associated information
incorporated into the appropriate tabs.
––––––––––––––––––––––––––––––––––––––––
The pre-run script will be called with three parameters. The first is the full
path of the script that is about to be run. The second is a list of all of the
parameters (if any) that will be passed to the script. The third is the full
path to the log file that will be created during the script run.
The pre-run script has the ability to change the parameters that will be
passed to the script. To do this, the pre-run script should return a
property list with a "parameters" property whose value is a list of the
parameters.
The post-run script is called after the script run has finished. It is called
with two parameters. The first is the full path of the script that was run.
The second is the scriptResult property list for the run, similar to the
result returned by the RunWithNewResults command.
• A template script for new scripts may also be specified on the Settings
tab for a suite. If a template script is chosen, each new script that is
created in that suite will begin as a copy of that script.
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––
Scripting:
Example code:
BeginTestCase "A" -- this marks the start of the
reporting period for case A
-- other commands here
EndTestCase "A" -- this ends the reporting period
for case A and logs the information that was gathered
BeginTestCase "B" -- start recording statistics
for case B
-- other commands here
BeginTestCase "C" -- start recording statistics
for case C
-- other commands here
EndTestCase "B" -- close case B and report
statistics gathered since case B was opened
-- other commands here
-- if the run ends with TestCase C still open, it
will be ended and reported automatically
––––––––––––––––––––––––––––––––––––––––
Other Changes:
––––––––––––––––––––––––––––––––––––––––
• When a WaitForAll command fails, it now reports exactly which image was
not found (for both the ImageDoctor and in the log). Previously it always
reported the first image as the one that was not found.
• Fixed a problem where ColorAtPoint() did not allow getting the colors at
the far extremes of the screen. Note: The actual screen goes from (0,0)
to (Server Width -1, Server Height - 1) but for simplicity/compatibility we
allow (Server Width, Server Height) to mean the right edge and bottom
edge of the screen respectively.
• Connections can now be dragged from the Connection List with the Alt
key held down (on Windows) and dropped into a script to generate a
Connect command with the full connection property list (previously this
capability was available on Mac and Linux, but not on Windows).
• Fixed an occasional crash following a RunWithNewResults.
• Fixed an occasional random crash when double-clicking on Windows
systems.
• Fixed an issue that menus would sometimes not appear in a window
when it was first opened on Windows systems.
• Fixed a bug that would fail to transmit large quantities of data (such as a
50K file) over a socket connection on Windows.
• Improved behavior when attempting connection to a SUT fails and times
out.
• Fixed an issue in which the Email and Subject fields on the bug report /
support panel would be marked in red even after the user entered
information in those fields.
• Fields in the bug report / support panel are now cleared when the panel
is brought up again.
• The bug report / support panel now allows attaching of crash logs on
Windows systems.
• Eliminated some spurious GSLayoutManager warnings in the console
log (Linux and Windows).
• Fixed some issues with windows occasionally being "lost" (such as
windows which were minimized on quitting being lost upon relaunching
eggPlant) (Windows and Linux).
––––––––––––––––––––––––––––––––––––––––––––––––––––
Release v11.33 (31-July-2012)
• Fix a buffer overrun that could corrupt memory when loading a script.
• Fix a problem with eggPlant trying to create a file/folder when it lacked
permissions.
• Memory Logging is no longer enabled by default, to enable it use
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v11.32 (26-July-2012)
Highlights:
––––––––––––––––––––––––––––––––––––––––
Scripting:
• Improved performance of the Log area in the Run Window when the maximum
buffer length is reached.
• Added friendlier syntax for accessing some of the folders identified by the
specialFolderPath function:
put the home folder
put the temporary folder
put the documents folder
put the desktop folder
• A fancy (curly) apostrophe may now be used in place of a regular (straight)
apostrophe if desired:
add one to sam's age -- regular apostrophe
add one to sam’s age -- fancy apostrophe (whoopee!)
• Improved error reporting for syntax errors caused by unrecognized Unicode
characters.
• Added the ability on Mac to prevent the machine from going to sleep while a
script is executing.
You can control this behavior with: setOption "PreventSleep", NO
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v11.31 (28-June-2012)
• Added support for resolving symlinks when calling scripts from CLI.
• Fixed a problem where an Alert Panel could halt execution if a script or suite
can't be located.
• Fixed a problem where the content-length didn't account for multi-byte
characters in the response.
• Fixed a problem where drive execute commands that did NOT generate a
value for the result could still transmit data in the result property, this slowed
down communication and created confusion.
––––––––––––––––––––––––––––––––––––––––
Mobile:
––––––––––––––––––––––––––––––––––––––––
Scripting:
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v11.3 (03-May-2012)
Highlights:
––––––––––––––––––––––––––––––––––––––––
Mobile:
––––––––––––––––––––––––––––––––––––––––
Command Line/Drive:
• When specifying -ReportFailures eggPlant will now exit with error code
1 if it encounters a problem before it begins to run a script, e.g.: Unable
to license, unable to resolve script name. Previously it would report 0
since no individual scripts had actually failed.
––––––––––––––––––––––––––––––––––––––––
User Interface:
• Added the ability to sort by the Last Run column in the Suite's Script list.
• Preferences -> Mail, now allows you to specify the default smtp_tranport and
port that the sendMail command will use.
• Windows now uses standard keyboard shortcuts for things like selection, move
from word to word, move to end of line, etc.
––––––––––––––––––––––––––––––––––––––––
Scripting:
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v11.22 (12-March-2012)
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v11.21 (9-March-2012)
Scripting:
• When doing an image search you can optionally specify a single asterisk
("*") for the ValidCharacters property to have OCR only identify the
characters in your search string.
––––––––––––––––––––––––––––––––––––––––
• Fixed a display bug in the Viewer Window when Ubuntu visual effects
were turned on.
• Fixed a problem with eggPlant recognizing that new updates are
available in some environments.
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v11.2 (2-March-2012)
Highlights:
––––––––––––––––––––––––––––––––––––––––
User Interface:
• Added a setting to change (or disable) the Countdown Delay when the
Manual Image Doctor engages.
• Improved the Image Doctor so that it will always run for script commands
regardless of pending DO button actions (from the Ad-Hoc Do Box).
Previously using the Do box would temporarily disable the Image Doctor.
• Allow setting a license key directly from the "No License Found" panel.
––––––––––––––––––––––––––––––––––––––––
Scripting:
• Added a pause for the KeyDownDelay when auto-sending a shift key for
a capital letter.
• Added support for the following mobile buttons on devices that support
them:
PowerButton, DismissButton, BackButton, UnlockButton,
EditButton
• When using OCR for an EveryImageLocation() search we now only
report a given location once even if it's found with multiple matching
modes.
• Added support to call ReadText() with two numbers (for a point) or four
numbers (for a rectangle).
• Added IgnoreUnderscores property when doing a Find Text operation,
ON by default because underscores are often overlooked by OCR.
• Added IgnoreSpaces property when doing a Find Text operation, ON by
default because spaces are often mis-counted by the OCR engine.
The value read will be a property list with all of the information contained
in the HTTP message that was read, including Method, Path, and
Header properties, similar to this:
(Header:(Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/
*;q=0.8", "Accept-Encoding":"gzip, deflate", "Accept-Language":"en-us",
Connection:"keep-alive", Host:"localhost:5991", "User-Agent":"Mozilla/
5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22
(KHTML, like Gecko) Version/5.1.1 Safari/534.51.22"),
HTTPMessageType:"Request", Method:"GET", Path:"/", Version:"HTTP/
1.1")
ISO 8601 date formats that are recognized begin with 4 digits for the
year followed by 2 digits for the month and 2 digits for the day. The year,
month, and day may be separated by a space, dash, or period. Time
formats that are recognized begin with a 2-digit hour followed by 2 digits
for the minute followed by 2 digits for the second. The second may be
followed by a decimal point (or comma) and a fraction of a second. The
hour, minute, and second may be separated by a colon or space. If both
date and time formats are included, the date format must come first, and
may be separated from the time format by a space or a capital letter 'T'.
Dates must begin with the year (which must always be 4 digits long,
using leading zeros for years before 1000). The month and day are
optional, but including the day without the month is not permitted. If the
day is omitted, the first day of the month is assumed. If both the month
and day are omitted, January 1 is assumed. If a date is given without a
time, SenseTalk assigns a time of noon on the given date.
If a time is given it must begin with the hour. The minute and second are
optional, but the second cannot be included if no minute is given. If
omitted, the minute and second are assumed to be zero.
Currently, SenseTalk will not treat an all-numeric value (all digits and
possibly a decimal point) as a date/time, so for any value to be
recognized as an ISO 8601 date/time it must include at least one
separator between elements, or the letter 'T' after the date or before the
time (or between the date and time if both are given), or the letter 'Z' or a
time zone offset at the end.
• Added ability to specify 'as boolean' (or call asBoolean() function). Also
'as integer', 'as base64' (or call asBase64() function). These are
primarily useful to control how values included as parameters in an
XML-RPC message (or when calling the XMLRPCFormat() function) will
be treated.
Now:
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v11.11 (28-November-2011)
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v11.10 (16-November-2011)
Highlights:
––––––––––––––––––––––––––––––––––––––––
User Interface:
• Added a setting to change (or disable) the Countdown Delay when the
Manual Image Doctor engages.
• Script names in the Results pane of the Suite window are now shown in
green or red to reflect whether the most recent run of that script resulted
in success or failure.
––––––––––––––––––––––––––––––––––––––––
Scripting:
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v11.03 (09-October-2011)
Highlights:
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––
––––––––––––––––––––––––––––––––––––––––
Highlights:
• Added a multi-purpose ReadText() function to read text from any screen using
OCR.
• Added the ability to search all scripts within a suite.
• Added the ability to easily repeat a script block for a given length of time, or
until a specified time.
• There is now a generic Text Search engine for finding text strings on the
screen.
If you have NOT modified your text preferences this is now the default Text
Finding Engine.
––––––––––––––––––––––––––––––––––––––––
User Interface:
• Added a Search Field for Scripts, allowing you to search script names or the
full content of every script in the suite.
• Added a "Last Run" column on the Scripts pane of the Suite window, that
shows the time when each script was last run. The time for a successful run
will be shown in green; for a failed run in red. Clicking the last run time will
show the results for that script run in the Results pane.
• Enabled editing of script names directly in the Scripts tab. Simply select a
script then click its name a second time to begin editing. Double-clicking
quickly will still open the script.
• Eggplant will no longer allow you to create two images of the same name in
the same folder, regardless of what file type extensions they use.
––––––––––––––––––––––––––––––––––––––––
Scripting:
• Added ReadText() function which takes one or two parameters. The first
(required) parameter is either a rectangle specifying the area of the remote
screen from which text is to be read, or a point or image indicating the location
of some text to read. The function returns whatever text was recognized from
that part of the screen. In the case of a rectangle, it will read all text contained
within that rectangle. In the case of a point, it will attempt to locate text near
that point, and will read and return as much text as it can find adjacent to that
text on the same line.
Example:
put readText((40,0,400,30))
--> Finder File Edit View Go
put readText((200,10))
--> Edit
• A new Text Finding Engine (OCR Search) now exists in the Eggplant
Preferences -> Text section.
If you have NOT modified your text preferences this is NOW the default Text
Finding Engine.
If you have modified your text preferences you can create a new platform that
uses OCR. You can always change your Default Text Platform using the Text
Preferences. When using the OCR Search text engine you can specify text in
any image finding command. You don't need to specify font characteristics but
you can select language options for various styles.
Example:
click(Text: "File") // If OCR is your default platform
moveTo(Text: "1:34 AM", TextPlatform:"OCR") // If OCR is not the
default platform
• Added an every option to the offset and range functions, to obtain the offset
location of every occurrence of one text string within another or the full range
(starting and ending positions) of every instance of some text within a larger
text string. In addition to the natural language syntax, these can also be called
using new everyOffset() and everyRange() functions.
put every range of "at" in "concatenation" into
atRanges
put atRanges -- (5 to 6,9 to 10)
• Added initial support for units associated with numeric values. Any variable
holding a numeric value can have a unit type associated with it. Two types of
units are officially supported at present: a time interval (or duration) type with a
unit of seconds and a byte size (or data size) type with a unit of bytes. Values
created with the special syntaxes for these types will automatically be
assigned with those unit types:
put 2 hours into waitTime -- a duration with units
of 'seconds'
put 16 megabytes into capacity -- a byteSize with
units of 'bytes'
• Added the ability to repeat for duration to create a repeat loop that terminates
after a specified length of time has passed. This type of repeat loop will
execute the body of the repeat block, then check whether the specified length
of time has elapsed since the repeat began. If so, the loop is terminated,
otherwise the body of the repeat loop is executed repeatedly with the time
being checked at the top of the loop each time until the specified time duration
has passed.
repeat for 3 seconds
add 1 to counter
end repeat
put "Counted to " & counter & " in 3 seconds"
• Added ability to repeat until time to allow a script to repeat a series of steps
until a particular date/time has arrived.
repeat until "5:00 PM"
doSomeWork
wait a minute
end repeat
• Added ability to wait until time to allow a script to pause execution until a
particular date/time arrives. If the time specified is already in the past,
execution proceeds immediately.
wait until "5:00 PM"
wait until now + 1 second -- evaluated repeatedly;
will wait forever
wait 1 second -- do this instead
• Added the asTextLimit global property to set a limit on the size of internally-
generated text representations of values. If a text representation is requested
that exceeds this limit an exception is now thrown. This protects the system
from possible crashes caused by extremely large values. The default limit is
ten million characters.
• The imageFound() function will now throw an exception if called with only one
parameter that is a number. If the first parameter is a number it is treated as
the time to search, so at least one image must also be supplied. To search for
an image whose name is a number without also giving a time parameter,
include the image's file type extension.
• Fixed a problem that could occasionally lead the remoteClipboard() function
called with a time parameter to throw an exception incorrectly indicating that
no new value was available.
• Fixed a possible hang when running a script from the command line.
• Fixed an issue setting the fonts used for scripts and logs.
• Fixed a problem with the "New Script..." menu item being disabled when a
window other than a script or suite window was selected.
• Fixed a memory leak of a socket, which could lead to a crash when checking
connection availability.
• Fixed a problem with display of values in the Duration column on the Licenses
panel.
• Fixed a bug with the Remove button on the Licenses panel deleting the last
license rather than the selected license.
• Fixed a bug that would throw an exception if Add Image was used to add an
image to a commented line in a script.
• Improved the behavior when attempting to capture an image with no suite
open.
• Fixed time values specified without a particular date to be treated as a time on
the current day (previously a bug was treating these as being on the first day
of the current year).
• Fixed a bug with deleting the first item of a list while iterating over that list
(could cause the second item of the list to be skipped).
• Fixed some problems with the standardFormat() function, which in some
cases (such as values containing ">" followed by a return) would produce an
incorrect representation that could not be turned back into the original value
using the value() function.
• Fixed a problem with checking whether a range is within another range.
• Fixed a bug that would display ranges within lists or property lists as lists,
rather than as ranges.
• Fixed a bug that would throw an exception if a next repeat statement was
executed more than 10 times within a try block inside a repeat loop, with the
message "SenseTalk Runtime Exception - TRY statement exceeds maximum
nesting limit per handler (10)".
• Fixed a bug (introduced in 10.22) with displaying lists or property lists
containing references to objects.
• Fixed a script formatting bug (introduced in 10.2) that would cause problems
when pasting any odd-length text string at a location exactly 99 characters
before the end of a script that is at least 200 characters long.
• Fixed a bug with standardFormat() that would throw an exception in certain
cases (such as when a property list contained a standard Cocoa object).
• Improved the error message when the call depth limit is exceeded to provide a
helpful hint. This error was also renamed from
"SRUN_RecursionLimitExceeded" to "STMaxCallDepthExceeded".
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v10.3 (10-January-2011)
Highlights:
––––––––––––––––––––––––––––––––––––––––
User Interface
––––––––––––––––––––––––––––––––––––––––
Scripting
• Added the ability to send email attachments using the SendMail command.
• Fixed a crashing/memory problem when setting the SearchRectangle
repeatedly in a script.
––––––––––––––––––––––––––––––––––––––––
Bug Fixes/Tweaks
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v10.24 (17-December-2010)
Highlights:
Windows7/Vista
––––––––––––––––––––––––––––––––––––––––
User Interface
• Added Search Field Filters for Logs and Images.
• Improved the Run Window pop-up menu behavior when selecting a frame
beyond the first one.
• Fixed a crashing problem when deleting or replacing an image and then
accessing images through the Images Tab.
• Fixed a problem when deleting logs from the Script Results pane.
• Fixed a problem using the Insert.. pop-up button to insert a RightClick
command.
• Cleanup of About Panel GUI.
––––––––––––––––––––––––––––––––––––––––
VNC
––––––––––––––––––––––––––––––––––––––––
Scripting
• Added a sorted operator that provides all the functionality of the sort
command. As an operator, it produces a sorted value without changing the source
value. The sorted operator takes the form "value sorted options" where options
include the same options available for the sort command, plus "as chunkTypes"
to sort the value as something other than a list of items.
put (99,3,2,5,32,36,45737,26) sorted --
(2,3,5,26,32,36,99,45737)
put randomList sorted in ascending order into
sortedList
put "Eggplant is great" sorted as words --
"Eggplant great is"
put "Eggplant is great" sorted as words by the
length of each
-- "is great Eggplant"
Common symbols:
period, fullStop, semicolon, questionMark, exclamationMark,
numberSign, circumflexAccent, ampersand, asterisk, leftParenthesis,
rightParenthesis, leftSquareBracket, rightSquareBracket, leftCurlyBracket,
rightCurlyBracket, underscore, apostrophe, singleQuote, tilde, graveAccent,
caretSign, referenceMark, doubleExclamationMark, doubleQuestionMark
Numeric symbols:
lessThanSign, greaterThanSign, equalsSign
––––––––––––––––––––––––––––––––––––––––
Bug Fixes/Tweaks
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v10.23 (29-October-2010)
Highlights:
• Added BETA Support for Windows 7/Vista -- See below
• Fixed a number of bugs and compatibility issues – (See Below).
––––––––––––––––––––––––––––––––––––––––
Windows7/Vista
––––––––––––––––––––––––––––––––––––––––
VNC
––––––––––––––––––––––––––––––––––––––––
Scripting
• Added a sorted operator for beta testing. This takes the form "value sorted
options" where options include the same options available for the sort
command, plus "as chunkTypes" if you want to sort the value as something
other than a list of items. This feature is considered beta, as it needs more
testing and may undergo some finishing tweaks before the next release.
put (99,3,2,5,32,36,45737,26) sorted --
(2,3,5,26,32,36,99,45737)
put randomList sorted in ascending order into
sortedList
put "Eggplant is great" sorted as words --
"Eggplant great is"
––––––––––––––––––––––––––––––––––––––––
Bug Fixes/Tweaks
• Fixed problems with keyboard focus going to the wrong window when using
the Taskbar to minimize or switch windows.
• Fixed a problem with double-clicks on inactive controls.
• Menus now show a checkbox where appropriate (eg. Image Doctor Setting,
Image Highlighting).
• Fixed a problem creating TextPlatforms or TextStyles that only differed by
case.
• Cleanup of preference panes GUIs.
• Fixed some issues with storing data into byte chunks that would previously
convert values to and from text internally.
• Fixed the standardFormat function to format lists with a space after the
opening brace so that nested lists can be evaluated correctly by the value
function without being interpreted as block quotes.
• Fixed the "number of lines of" function and "each line of" expressions to allow
a list for "delimited by" and use the lineDelimiter if delimiter is omitted or
empty.
• Fixed a problem with error reporting when an error occurred in evaluating the
setup conditions of a repeat loop, that would report as being an error in the
preceding line of the script.
• Fixed a bug with accessing the properties of an object that was passed into a
handler as a single-item list containing the object.
• Fixed a bug with accessing the currentIndex property or iterating using
nextValue or nextAssignedValue of a list when that list contains a single value
which is an object.
• Fixed a bug with assigning a list of chunks to a value that would treat them as
references ("put items (3,4) of x into y").
• Fixed a bug when performing vector arithmetic using a list containing
references to other values, that would alter the referenced values.
• Fixed a problem where Remote Windows sometimes tracked the mouse when
not the active window.
• Fixed a problem with GetOptions reporting about FullScreenFailsafe.
• Fixed a bug that prevented iterating over the same range or list multiple times
in a nested manner.
• Fixed a bug when saving a script to a different Suite.
• Fixed a bug where non-active Remote Windows would report that they were
running the script.
• Fixed a bug that would prevent similar objects (that were equal in value, but
distinct objects) from both being included in the helpers or early helpers of
another object.
• Fixed a crash when the SUT screen resolution changes.
• Fixed a problem where enabling/disabling some encodings wouldn't take
effect.
• Fixed a bug using the TypeText pull-down menu.
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v10.22 (4-September-2010)
Major Enhancements
User Interface
• You can set a Default search type for new images in the Viewer
Preferences.
• Results for scripts called with RunWithNewResults can now be easily
jumped to by using the Linker Arrow in the Result Viewer.
• The Format menu has been removed, as creating scripts in RTF format is
no longer supported. Similarly, the Default Script File Format has been
removed from the Script preferences pane.
• The Restore Defaults action on the Text preferences panel now displays a
dialog warning that it will remove any custom text platform information.
• Added the ability to pick a SUT from the Connection List on the Schedule
Tab.
• Fixed some problems using the TypeText pull down menu.
• Fixed a problem where the Remote Window would stop drawing updates
and turn gray.
• A new command on the Help menu provides a link to the new online
tutorials.
VNC
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v10.21 (2-June-2010)
Major Enhancements
User Interface
Scripting
• Added support for the shell() function on Windows, please see SenseTalk
Reference for details
• Added support for the format() function on Windows, please see
SenseTalk Reference for details
• RTF scripts can now be read properly from Windows.
––––––––––––––––––––––––––––––––––––––––––––––––––––Release
v10.2 (26-April-2010)
This initial release of Eggplant for Windows contains almost all of the functionality
available in Eggplant for Mac. Below are the features that are excluded at this
time. Please report any problems that you encounter to [email protected].
––––––––––––––––––––––––––––––––––––––––––––––––––––Known
Exclusions from the Mac version of Eggplant:
• Movie Recording both from the GUI and the startMovie command is not
available.
• Bonjour/zeroconfig VNC server detection is not present.
• Use Image toolbar item on the Remote Window is not available at this
time.
• Text Image Generation is supported through external and scripted
generators only.
• Color Panel Does not currently Named Colors.
• Image Formats Suites do not currently support ICO, PICT, or PDF images.
• ssh connections ARE supported, but require that you install an SSH client.
Please see the Eggplant Reference manual for instructions.