Skip to content

WebDriver for testing HTML applications

License

Notifications You must be signed in to change notification settings

dlenroc/appium-html-driver

Repository files navigation

Appium HTML Driver · NPM Version Node.js Version Chrome 32 Firefox 29 Safari 8

Appium HTML Driver is a WebDriver that allows controlling applications written using web technologies, regardless of the device they are running on.

Installation

appium driver install --source npm @dlenroc/appium-html-driver

Usage

  1. Instrumentation

    Inject the following code in every HTML file that belongs to your application.

    <script src="{origin}/appium-html-driver/js?udid={udid}&handle={handle}"></script>

    Where:

    • origin - address of the Appium server, for example: http://192.168.0.2:4723.
    • udid (optional) - identifier that represent your device, default to client's IP address.
    • handle (optional) - identifier that will represent the window handle.
  2. Attach and run test

    await driver = await remote({
      'capabilities': {
        'platformName': 'html',
        'appium:automationName': 'html',
        'appium:udid': udid
      },
    });
    
    /**
     * Load instrumented page manually, via cli or in any other way
     *
     * NOTE: that is not driver's responsibility
     */
    
    // Attach to target
    const handles = await driver.getWindowHandles();
    await driver.switchToWindow(handles[0]);
    
    // Conduct testing
    await driver.getUrl()
      .should.eventually.be.fulfilled;

Capabilities

Capability Required Type Description
platformName + string Must be html
appium:automationName + string Must be html
appium:udid + string See Connection
appium:handle - string The window handle to switch to during session creation

Commands

Command Description
active Get active element
back Back
clear Element clear
click Element click
closeWindow Close window
createNewWindow New window
deleteCookie Delete cookie
deleteCookies Delete all cookies
elementDisplayed Is element displayed
elementEnabled Is element enabled
elementSelected Is element selected
execute Execute script
executeAsync Execute async script
findElement Find element
findElementFromElement Find element form element
findElements Find elements
findElementsFromElement Find elements from element
forward Forward
getAttribute Get element attribute
getCookie Get named cookie
getCookies Get all cookies
getCssProperty Get element CSS value
getElementRect Get element rect
getName Get element tag name
getPageSource Get page source
getProperty Get element property
getText Get element text
getTimeouts Get timeouts
getUrl Get current URL
getWindowHandle Get window handle
getWindowHandles Get window handles
getWindowRect Get window rect
maximizeWindow Maximize window
refresh Refresh
setCookie Add cookie
setFrame Switch to frame
setUrl Navigate to URL
setValue Element send keys
setWindow Switch to window
setWindowRect Set window rect
switchToParentFrame Switch to parent frame
timeouts Set timeouts
title Get title