t.me/atinfo_chat Telegram группа по автоматизации тестирования

Appium + wdio проблема с запуском теста для iOS

webdriverio
ios
appium
mobile
Теги: #<Tag:0x00007f21d57a3778> #<Tag:0x00007f21d57a3638> #<Tag:0x00007f21d57a34f8> #<Tag:0x00007f21d57a3390>

(Alex White) #1

Всем привет. Я новичок в автоматизации тестирования мобильных приложений. Столкнулся с такой проблемой: при попытке запустить тест происходит запуск симулятора и запуск приложения, но затем возникает ошибка: “ERROR @wdio/runner: TypeError: driver.init is not a function”.
Код теста был сгенерирован appium recorder’ом и выглядит так:

const wdio = require('webdriverio');
const caps = {
	"platformName":"iOS",
	"platformVersion":12.1,
	"deviceName":"iPhone 6s",
	"app":"/Users/kaas/Documents/work/test.app",
	"automationName":"XCUITest"
};
const driver = wdio.remote({
  protocol: "http",
  host: "localhost",
  port: 4723,
  path: "/wd/hub",
  desiredCapabilities: caps
});

driver.init()
  .touchAction({actions: 'tap', x: 277, y: 402})
  .touchAction({actions: 'tap', x: 118, y: 638})
  .end();

Содержимое файла wdio.conf выглядит следующим образом:

exports.config = {
    runner: 'local',
    port: 4723,

    specs: [
        './test/specs/**/*.js'
    ],

    maxInstances: 10,
    capabilities: [{
      "platformName": "iOS",
      "platformVersion": 12.1,
      "deviceName": "iPhone 6s",
      "app": "/Users/kaas/Documents/work/test.app",
      "automationName": "XCUITest",
      "appiumVersion": '1.14', 
    }],
    logLevel: 'info',
    bail: 0,
    baseUrl: 'http://localhost',
    waitforTimeout: 10000,
    connectionRetryTimeout: 90000,
    connectionRetryCount: 3,
    services: ['appium'],
    appium: {
        command: 'appium',
    },
    framework: 'mocha',
    reporters: ['spec'],
    mochaOpts: {
        ui: 'bdd',
        timeout: 60000
    },
}

Сервер appium во время теста запущен. Работаю на macOS Mojave 10.14.6. Полный лог ошибки выглядит так:

0-0 worker error {
  name: 'TypeError',
  message: 'driver.init is not a function',
  stack: 'TypeError: driver.init is not a function\n' +
    '    at Object.<anonymous> (/Users/kaas/Documents/work/test/appium_test/test/specs/basic.js:22:8)\n' +
    '    at Module._compile (internal/modules/cjs/loader.js:777:30)\n' +
    '    at Object.Module._extensions..js (internal/modules/cjs/loader.js:788:10)\n' +
    '    at Module.load (internal/modules/cjs/loader.js:643:32)\n' +
    '    at Function.Module._load (internal/modules/cjs/loader.js:556:12)\n' +
    '    at Module.require (internal/modules/cjs/loader.js:683:19)\n' +
    '    at require (internal/modules/cjs/helpers.js:16:16)\n' +
    '    at /Users/kaas/Documents/work/test/appium_test/node_modules/mocha/lib/mocha.js:334:36\n' +
    '    at Array.forEach (<anonymous>)\n' +
    '    at Mocha.loadFiles (/Users/kaas/Documents/work/test/appium_test/node_modules/mocha/lib/mocha.js:331:14)'
}