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

Locator Strategy '-ios uiautomation' is not supported for this session

codeceptjs
webdriver
ios
appium
Теги: #<Tag:0x00007f9c481f7c78> #<Tag:0x00007f9c481f77c8> #<Tag:0x00007f9c481f74d0> #<Tag:0x00007f9c481f7160>

#1

Всем привет!

У нас на проекте для тестирования гибридного iOS приложения используется связка codeceptjs + appium + webdriver, на старых версиях все работало (“appium”: “^1.8.1”, “codeceptjs”: “^1.4.6”, “webdriverio”: “^4.14.0”)

Недавно мы захотели попробовать апгрейднуть версии всех либ до актуальных, однако столкнулись с проблемой непонимания codecept / appium ios локаторов после апгрейда.

2019-05-16T08:57:31.964Z ERROR webdriver: Request failed due to invalid selector: Locator Strategy '-ios uiautomation' is not supported for this session
    at getErrorFromResponseBody (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/webdriver/build/utils.js:349:10)
    at Request._callback (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/webdriver/build/request.js:121:64)
    at Request.self.callback (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/request/request.js:185:22)
    at Request.emit (events.js:189:13)
    at Request.EventEmitter.emit (domain.js:441:20)
    at Request.<anonymous> (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:189:13)
    at Request.EventEmitter.emit (domain.js:441:20)
    at IncomingMessage.<anonymous> (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:277:13)
  ✖ FAILED in 1255ms

Новые версии модулей такие:
“appium”: “^1.13.0”,
“codeceptjs”: “^2.1.2”,
“webdriver”: “^5.8.3”,
“webdriverio”: “^5.8.4”

Может у кого-нибудь было что-то похожее или есть идея, куда копать?

Логи аппиума, если нужно:

0|appium   | [HTTP] {"using":"-ios uiautomation","value":"chain=**/XCUIElementTypeStaticText[`name == \"dev-client-automation\"`]"}
0|appium   | [debug] [W3C (3d262bfa)] Calling AppiumDriver.findElements() with args: ["-ios uiautomation","chain=**/XCUIElementTypeStaticText[`name == \"dev-client-automation\"`]","3d262bfa-5afc-44ab-8b4a-e9b00567a97e"]
0|appium   | [debug] [XCUITest] Executing command 'findElements'
0|appium   | [debug] [BaseDriver] Valid locator strategies for this request: xpath, id, name, class name, -ios predicate string, -ios class chain, accessibility id
0|appium   | [debug] [W3C (3d262bfa)] Encountered internal error running command: InvalidSelectorError: Locator Strategy '-ios uiautomation' is not supported for this session
0|appium   | [debug] [W3C (3d262bfa)]     at XCUITestDriver.validateLocatorStrategy (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/driver.js:362:13)
0|appium   | [debug] [W3C (3d262bfa)]     at XCUITestDriver.validateLocatorStrategy (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:963:11)
0|appium   | [debug] [W3C (3d262bfa)]     at XCUITestDriver.validateLocatorStrategy [as findElOrElsWithProcessing] (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:32:8)
0|appium   | [debug] [W3C (3d262bfa)]     at XCUITestDriver.findElOrElsWithProcessing [as findElements] (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:64:21)
0|appium   | [debug] [W3C (3d262bfa)]     at curCommandCancellable._bluebird.default.resolve.then (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/driver.js:301:66)
0|appium   | [debug] [W3C (3d262bfa)]     at tryCatcher (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/bluebird/js/release/util.js:16:23)
0|appium   | [debug] [W3C (3d262bfa)]     at Promise._settlePromiseFromHandler (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/bluebird/js/release/promise.js:512:31)
0|appium   | [debug] [W3C (3d262bfa)]     at Promise._settlePromise (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/bluebird/js/release/promise.js:569:18)
0|appium   | [debug] [W3C (3d262bfa)]     at Promise._settlePromiseCtx (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/bluebird/js/release/promise.js:606:10)
0|appium   | [debug] [W3C (3d262bfa)]     at _drainQueueStep (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/bluebird/js/release/async.js:142:12)
0|appium   | [debug] [W3C (3d262bfa)]     at _drainQueue (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/bluebird/js/release/async.js:131:9)
0|appium   | [debug] [W3C (3d262bfa)]     at Async._drainQueues (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/bluebird/js/release/async.js:147:5)
0|appium   | [debug] [W3C (3d262bfa)]     at Immediate.Async.drainQueues (/Users/dsharapkou/Documents/workspace/client_testing_automation/node_modules/appium/node_modules/bluebird/js/release/async.js:17:14)
0|appium   | [debug] [W3C (3d262bfa)]     at processImmediate (timers.js:632:19)
0|appium   | [debug] [W3C (3d262bfa)]     at process.topLevelDomainCallback (domain.js:120:23)

#2

Помогла замена всех локаторов в проекте с
ios=chain=
на -ios class chain:
и все заработало