MuseIDE 0.15 release

I’m excited to announce that MuseIDE is now open-source!  The underlying automation framework has always been open-source, but there are some parts of the UI that I cannot open-source as easily. It took a while to tease them out of the base IDE, but it is now done. You can find the IDE project on my GitHub – with Java 10 and a few Gradle commands, you can be running from source without too much effort. The binary distribution adds a few additional features (such as auto-updates and a UI for installing project extensions), but is otherwise just a more convenient way to install and run it. And, of course, you can dig into the source and contribute, too! I look forward to some pull requests 🙂

Additions and improvements

General features

  • Improve GreaterThanCondition and LessThanCondition sources to work with all native integer types. Previously, passing values from non-Muse sources might not have been compatible (e.g. in extensions, other libs, etc).
  • Set default value for the amount parameter in Increment step (to 1).
  • [n] notation can now be used to access items in lists in value source expressions (e.g. set $”item” to $”list”[n]).
  • New StringContains value source (with support for stringContains(string,target) expression)
  • New And and Or boolean value sources added (with expression support for || and && operators).
  • New StepWait plugin can add a delay after each step – to slow down the pace of the steps in a test.
  • New FindByRegex and FindNvpByRegex value sources can find single values or Name/Value pairs in a string using Regular Expressions. These are supported with the findByRegex(regex,string) and findNvpByRegex(regex, target, name_group, value_group) expressions

Selenium/WebDriver features

  • Run Javascript step now supports passing arguments to the script and returning a value to be stored as a local variable.
  • Element sources now have a find multiple parameter. When true, the source resolves to a list containing 0…N items. If none are found, the list is simply empty (not an error condition).
  • New value sources to retrieve the label of the item selected in a dropdown, the value of an element (e.g. an input field) and the editable state of an input. These are supported with the selectedLabel(), elementValue() and elementEditable() expressions.
  • New steps AcceptDialog, CancelDialog and SendKeysToDialog allow interacting with Javascript dialogs and alerts.
  • New steps for interacting with Select controls (drop-downs) include Select by Value, Deselect by Text, Deselect by Index and Deselect by Value.
  • New DialogText value source provides access to the text in a Javascript dialog (with support for the dialogText() expression).
  • The clear content parameter of the Send Keys step now defaults to true.
  • There is a new Keystrokes value source, which allows embedding special keys in strings for the Selenium Send Keys step. E.g. “{TAB}” or “{ESCAPE}”

SeleniumIDE import

Support is added for importing the following commands when importing SeleniumIDE (.side) tests:

  • check and uncheck
  • select, add selection and remove selection
  • assert title
  • echo
  • assert selected label and assert selected value
  • assert value
  • submit
  • set window size
  • assert element not present
  • assert alert, assert confirmation, assert prompt

Bug fixes

  • Fix cut/delete bug that caused test corruption when one of the selected steps is the child of another.
  • Fix to allow auto-expand and auto-collapse of steps (while stepping through a test) that are inside composite steps within a Function or Macro.

Housekeeping

  • Upgraded all projects to build with Gradle 4.9