Arquillian Drone/Graphene/Selenium and UI/Functionality Testing
Arquillian Drone and Graphene are built on top of of Selenium/Webdriver. Former simplifies configuration and management of drivers, where latter provides some nice abstractions and facades to interact with the browser.
You can find quite a bit of useful information on the projects documentation pages:
All the things already mentioned by Happy Selenium User are therefore available when you combine Arquillain with Drone/Graphene.
There is also Android extension in Arquillian ecosystem which can drive your web tests (again through WebDriver) which simplifies connecting/managing your Android device or emulator.
Happy Selenium (WebDriver) user here. I have no idea what Arquillian Drone / Graphene are, but I know Selenium fairly well:
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.
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.
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.