Best practices in regards to Selenium GRID and Mobile Web Testing

Hi There,

I am testing a web site. I already have a set of tests for the pages, that I execute using Selenium Grid. Now I want to add an appium node to my hub.

FYI I also have some drag & drop functionality in the web pages

As is common in website testing I initiate the tests like this:

DesiredCapabilities capabilities = new DesiredCapabilities();
...
*define capabilities for example browserName etc...*
...
Wedriver driver new RemoteWebDriver(new URL(<Hub URL>), capabilities);

Later on in the program I will be performing TouchActions.

TouchAction action = new TouchAction((AppiumDriver) in_driver);

    Point l_dragPoint = SeleniumTools
            .fetchPointToClickMobile(in_dragElement);
    Point l_dropPoint = SeleniumTools
            .fetchPointToClickMobile(in_dropElement);

    Point l_dropPointOffset = SeleniumTools.getDropOffSet(l_dragPoint,
            l_dropPoint);

    action.longPress(l_dragPoint.getX(), l_dragPoint.getY())
            .moveTo(l_dropPointOffset.getX(), l_dropPointOffset.getY())
            .release().perform();

Now here is my question. In your view, at what point should I be making use of the appium/IOS Driver driver?

  1. Should instantiate the driver as an IOSDriver? Will it still work with the Grid?
  2. Should I define the driver as an IOSdriver right from the beginning when defining the driver?
  3. Should I simply type case the “RemoteWebDriver” when I need to perform touch actions? (This used to work previously Appium 1.2.4, but not any longer - 1.3.4)

Is there a best practice in using Appium for mobile websites, in a shared grid with desktop browsers?