Nutmeg Pumpkin Macchiato

    appium-ios-driver

    4.8.3 • Public • Published

    Appium iOS Driver

    NPM version Downloads Dependency Status devDependency Status

    Build Status

    Appium iOS Driver is a test automation tool for iOS devices up to an including iOS 9.3. Appium iOS Driver automates native, hybrid and mobile web apps, tested on simulators and real devices, using Apples' UI Automation framework. Appium iOS Driver is part of the Appium mobile test automation tool.

    To automate iOS devices with a version of iOS greater than 9.3, see appium-xcuitest-driver.

    Note: Issue tracking for this repo has been disabled. Please use the main Appium issue tracker instead.

    iOS Support

    Appium iOS Driver supports iOS versions 8+

    Installation

    npm install appium-ios-driver

    Authorization for automation support

    On some systems Instruments is not authorized to automate iOS devices. This package comes with a little utility that pre-authorizes Instruments to run UIAutomation scripts.

    Running the authorization script will bring up an alert that prompts the user to input their sudo password. There is no way around this.

    Command line usage

    If this package has been installed globally (either as part of an Appium installation, with npm install -g appium, or individually, with npm install -g appium-ios-driver), a global command line utility will be installed, so you simply need to invoke it:

    $ authorize-ios
    

    Programmatic usage

    To invoke programmatically (in, for instance, a test runner) is as simple as importing and invoking the authorize function, which returns a Promise:

    npm install -S appium-ios-driver
    
    import { authorize } from 'appium-ios-driver';
    
    authorize()
      .then(function () {
        console.log('iOS authorized!');
      })
      .catch(function (err) {
        console.error(`Error authorizing: ${err.message}`);
      });

    Usage

    Import iOS Driver, set desired capabilities and create a session:

    import { IosDriver } from `appium-ios-driver`
    
    let defaultCaps = {
      app: 'path/to/your.app',
      platformName: 'iOS',
      deviceName: 'iPhone 6'
    };
    
    let driver = new IosDriver();
    await driver.createSession(defaultCaps);

    Run commands:

    await driver.setOrientation('LANDSCAPE');
    console.log(await driver.getOrientation()); // -> 'LANDSCAPE'

    Commands

    Command
    active
    asyncScriptTimeout
    back
    background
    checkForAlert
    clear
    click
    clickButtonToLaunchSafari
    clickCoords
    clickCurrent
    clickWebCoords
    closeAlertBeforeTest
    closeApp
    closeWindow
    convertElementsForAtoms
    deleteCookie
    deleteCookies
    elementDisplayed
    elementEnabled
    elementSelected
    execute
    executeAsync
    executeAtom
    executeAtomAsync
    executeMobile
    findElOrEls
    findUIElementOrElements
    findUIElementsByXpath
    findWebElementOrElements
    flick
    flickElement
    forward
    getAlertText
    getAtomsElement
    getAttribute
    getContexts
    getContextsAndViews
    getCookies
    getCssProperty
    getCurrentContext
    getDeviceTime
    getLatestWebviewContextForTitle
    getLocation
    getLocationInView
    getLog
    getLogTypes
    getName
    getOrientation
    getPageSource
    getScreenshot
    getSimFileFullPath
    getSize
    getText
    getUrl
    getWindowHandle
    getWindowHandles
    getWindowSize
    getWindowRect
    handleTap
    hideKeyboard
    initAutoWebview
    isWebContext
    keys
    launchApp
    listWebFrames
    lock
    mobileRotation
    mobileScroll
    mobileShake
    mobileWebNav
    moveTo
    nativeTap
    nativeWebTap
    navToInitialWebview
    navToViewThroughFavorites
    navToViewWithTitle
    onPageChange
    parseElementResponse
    parseExecuteResponse
    parseTouch
    performMultiAction
    performTouch
    postAcceptAlert
    postDismissAlert
    pullFile
    pullFolder
    pushFile
    receiveAsyncResponse
    refresh
    setAlertText
    setContext
    setCookie
    setFrame
    setGeoLocation
    setOrientation
    setUrl
    setValue
    setValueImmediate
    setWindow
    stopRemote
    submit
    title
    translateWebCoords
    typeAndNavToUrl
    useAtomsElement
    useNewSafari
    waitForAtom
    webContextIndex
    webFlickElement
    xySpeedFlick

    Insecure Features

    These can be enabled when running this driver through Appium, via the --allow-insecure or --relaxed-security flags.

    Feature Name Description
    get_server_logs Allows retrieving of Appium server logs via the Webdriver log interface

    Watch code for changes, re-transpile and run unit tests:

    gulp watch

    Test

    For tests, the default sims required are an iOS 9.2 iPhone 6 and iPad 2, which you can create as follows if one doesn't already exist on your system (use xcrun simctl list to check first):

    xcrun simctl create "iPhone 6" "iPhone 6" 9.2
    xcrun simctl create "iPad 2" "iPad 2" 9.2

    Then you can run unit and e2e tests:

    // unit tests:
    gulp once
    
    // e2e tests - specify your desired iOS version, for example iOS8.4:
    DEVICE=ios84 gulp e2e-test

    Install

    npm i appium-ios-driver

    DownloadsWeekly Downloads

    136,499

    Version

    4.8.3

    License

    Apache-2.0

    Unpacked Size

    2.99 MB

    Total Files

    123

    Last publish

    Collaborators

    • boneskull
    • jlipps
    • imurchie
    • dangraham
    • nick.mokhnach
    • umut.uzgur
    • kazucocoa
    • bootstraponline