Arquillian Drone Extension 2.0.1.Final Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 2.0.1.Final release of the Arquillian Drone Extension component!

Chrome options

This release brings you a possibility to set chrome options for a chromeDriver through your arquillian.xml file. You can find all possible options that can be set on this web page.
The process of setting options uses a ChromeOptions class which means that the parameter names (used in arquillian.xml) are tightly coupled with the names of the set/add methods defined in the class. It is expected that the name of each parameter consists of:

“chrome” + (name of the set/add method of ChromeOption class without first three chars)
the whole string should be in camel case. For example, in case of an option args which is coupled with the method addArguments, the parameter should look like this:
<property name=chromeArguments>--first-argument --second-argument</property>

Please notice that there are two methods named addArguments in the ChromeOptions class, one with a parameter which is a list of strings and second one with an array of strings – Drone treats them as a one single method (for other methods it is applied analogically).

Value formats

  • In the cases, when the value can be an array or list of strings/files, you should specify all of them in one string separated by space (this is also applied for extensions as well as for encoded extensions).
  • It is a little bit different in the case of experimental options. These options should be provided as set of key-value pairs, so we decided to use JSON format for it (can be in multiline format) – for example:
    <property name=chromeExperimentalOption>
    {
      "perfLoggingPrefs": {
        "traceCategories": ",blink.console,disabled-by-default-devtools.timeline,benchmark"
      },
      "prefs": {
        "download.default_directory": "/usr/local/path/to/download/directory"
      }
    }
    </property>

Debug

If you struggle with passing required chrome options through the arquillian.xml file, you can use a parameter chromePrintOptions with a value true:

<property name=chromePrintOptions>true</property>
This ensures that Drone prints out the whole content of ChromeOptions in a JSON format to the standard output.

Firefox 48

Since Mozilla has changed the internals of Firefox we strongly recommend to use new geckodriver, as the community one is not compatible anymore. This applies for to all Firefox versions starting from 48. The gecko drivers can be downloaded here.

This Drone release partially supports these changes. By partially we mean you haved to download the geckodriver manually and specify a path to the driver using a parameter firefoxDriverBinary there in your arquillian.xml file:

<property name=firefoxDriverBinary>/path/to/your/driver/binary</property>
Apart from this configuration, you also need to have Selenium 3 on your classpath – see below for detailed instructions.

Selenium version

As this release of Drone is a minor release and the latest Selenium release is in beta version, we decided stick to supported release in this version. In other words, Selenium 3 dependency is not automatically fetched by Drone 2.0.1.Final (the default one is still 2.53.1).

If you need to use the latest version of Selenium (for example together with geckodriver – see above), then the easiest way is specifying selenium-bom dependency in a dependencyManagement part of your pom.xml file:

pom.xml
 <!-- clip -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.jboss.arquillian.selenium</groupId>
            <artifactId>selenium-bom</artifactId>
            <version>3.0.0-beta3</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>
<!-- clip -->

IMPORTANT: If you also use the arquillian-drone-bom (or other BOMs), make sure that the selenium-bom is placed before other BOMs – to make the change effective.

The full support of Selenium 3 and geckodriver will be provided in the next release of Drone (2.1.0.Alpha1), so stay tuned.

We hope that you’ll enjoy our new stuff and look forward to hear your feedback.

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Drone Extension
Version 2.0.1.Final view tag
Release date 2016-09-14
Released by Matous Jobanek
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-drone-bom pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver-depchain pom
  • org.jboss.arquillian.extension » arquillian-drone-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-configuration jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium-server jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-saucelabs-extension jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-browserstack-extension jar javadoc pom

Release notes and resolved issues 4

Component Upgrade
Feature Request
  • ARQ-2037 - Support additional browser capabilities for Chrome
  • ARQ-2044 - Expose logic that creates browser capabilities
  • ARQ-2045 - Add possibility to define firefox driver binary to support FF48

Thanks to the following list of contributors: Matous Jobanek