Search code examples
javaseleniumfunctional-testingjboss-arquillian

Arquillian Drone/Graphene/Selenium and UI/Functionality Testing


I'm halfway bought-and-sold on investing a fair amount of time into completely learning JBoss Arquillian and using it for all my integration and functional testing. I'm 100% sure that I want to use it for my integration testing framework, but am a little skeptical about using it for UI/Functionality testing, and was hoping if somebody who has experience with Arquillian Drone/Graphene/Selenium can vouch for its capabilities:

  • Will I be able to simulate any kind of end-user input (mouse clicks, key strokes, etc.) to any DOM element (buttons, divs, images, etc.) in my Java test cases?
  • Will I be able to simulate all this input across all major browsers (IE, FF, Chrome, and Safari) and versions?
  • Will I be able to simulate all this input across all major mobile devices (Webkit for mobile web and Android, iOS, Windows Phone, Blackberry, Kindle and Nook for native) and versions?

Thanks in advance!


Solution

  • Happy Selenium (WebDriver) user here. I have no idea what Arquillian Drone / Graphene are, but I know Selenium fairly well:

    1. Will I be able to simulate any kind of end-user input (mouse clicks, key strokes, etc.) to any DOM element (buttons, divs, images, etc.) in my Java test cases?

      Any kind of input to any DOM element:

      • mouse clicks, double clicks, right clicks
      • key strokes, simultaneous keys pressing, functional keys
      • drag'n'drop (inside the browser - you can't really drag a file from desktop to an element on a page)
      • any combination of the above, even defined as a single action

        Additionally,

      • uploading of files (no reliable downloading, although there are good user-made workarounds for most browsers / native Java downloading)
      • running JavaScript
      • screenshot taking
      • cookies managing

        However, Selenium has none to very limited support of Silverlight and Flash elements.

    2. Will I be able to simulate all this input across all major browsers (IE, FF, Chrome, and Safari) and versions?

      IE, FF, Opera, Chrome, all without a problem. The Safari support is very new (from April) and is still annotated Beta, so no certainties there. However, it mostly works, and is more complete with every additional version.

    3. Will I be able to simulate all this input across all major mobile devices (Webkit for mobile web and Android, iOS, Windows Phone, Blackberry, Kindle and Nook for native) and versions?

      • Android: yes, WebView configured as Android Browser
      • iOS: yes, UIWebView
      • others: only unofficially: headless WebKitDriver, two years dead BlackBerryDriver

        On those mobile browsers, rotating, finger swipes etc. are of course included.