Selenium/WebDriver Bindings


MarathonITE provides access to Selenium/WebDriver bindings to your scripts. This extends Selenium/WebDriver bindings for Ruby. When you access a component in MarathonITE using get_component, the object you receive is a WebElement. You can perform any of the standard WebDriver operations on this WebElement. You can use any Selenium/WebDriver calls and intersperse them with MarathonITE calls. This provides your scripts the power and flexibility they may need for implementing complex scenarios.

MarathonITE Java Drivers implement Selenium JSON Wire Protocol

MarathonITE uses marathon java drivers which are part of our open source version. The drivers implement Selenium JsonWireProtocol – the protocol used by WebDriver to communicate with remote instances of Java/Swing™ and Java/FX™ applications. Testers who are familiar with Selenium/WebDriver can take advantage of this integration. For Web applications, MarathonITE uses standard Selenium drivers with enhancements for recording functionality.
Marathon WebDriver bindings for Java
Marathon Architecture

Extend your scripts with WebDriver bindings

There are things that you can accomplish with WebDriver bindings which, though possible, are cumbersome to perform using MarathonITE. For example, the following script checks that all the text fields within a window contain tooltips attached to them.

Mix and match MarathonITE and WebDriver calls

MarathonITE itself internally uses WebDriver calls to implement script elements like select and click. MarathonITE‘s get_component returns a WebElement and the web driver instance is available as driver within the script. You can mix both MarathonITE and WebDriver calls within a single script.

Use CSS to find elements within the application window

MarathonITE implements a CSS finder for Java applications. You can use WebDriver’s find_element(s) call to quickly find a component in the application. MarathonITE maps name and id to component’s name (set through java.awt.Component#setName method) and the tag name is mapped to a modified class name of the component. For example, JTextField has a tag name text-field.