[Python][Appium][Uiautomator2]The requested resource could not be found

164 views Asked by At

I'm facing problem with scrolling in Android tests with Appium and UiAutomator

Appium v2.5.1 [email protected]

Log:

[HTTP] --> POST /wd/hub/session/30ea7661-385b-4642-a3c3-b64346a5fe84/touch/perform
[HTTP] {"actions":[{"action":"press","options":{"x":0,"y":755}},{"action":"moveTo","options":{"x":0,"y":50}},{"action":"release","options":{}}]}
[AndroidUiautomator2Driver@c0a4 (30ea7661)] Command 'performTouch' has been deprecated and will be removed in a future version of Appium or your driver/plugin. Please use a different method or contact the driver/plugin author to add explicit support for the command before it is removed
[AndroidUiautomator2Driver@c0a4 (30ea7661)] Driver proxy active, passing request on via HTTP proxy
[AndroidUiautomator2Driver@c0a4 (30ea7661)] Matched '/wd/hub/session/30ea7661-385b-4642-a3c3-b64346a5fe84/touch/perform' to command name 'performTouch'
[AndroidUiautomator2Driver@c0a4 (30ea7661)] Proxying [POST /wd/hub/session/30ea7661-385b-4642-a3c3-b64346a5fe84/touch/perform] to [POST http://127.0.0.1:8200/session/bee258ad-6bbe-4b77-9413-236b6fb3172e/touch/perform] with body: {"actions":[{"action":"press","options":{"x":0,"y":755}},{"action":"moveTo","options":{"x":0,"y":50}},{"action":"release","options":{}}]}
[AndroidUiautomator2Driver@c0a4 (30ea7661)] Got response with status 404: {"sessionId":null,"value":{"error":"unknown command","message":"The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource","stacktrace":"io.appium.uiautomator2.common.exceptions.UnknownCommandException: The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource\n\tat io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:84)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)\n\tat io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandler...

How can I solve this problem?

I tried to run this without /wd/hub but still face the same issue( And I tried to downgrade Appium to 2.2.2 and UIautomator to 2.43.4 and same result again but without message about deprecation(

1

There are 1 answers

1
Thich Nguyen On

The touchPerform is removed on uiautomator2 v3.0.0 and xcuitest v7.0.0 Use can use "driver.execute('mobile:" instead. Link

I have updated my code and it's working

  async longPressOnMobileElement(locator, time = 1) {
    const browser = this.helpers["Appium"].browser;
    const element = await browser.$$(locator)
    if (browser.requestedCapabilities['platformName'] == 'iOS') {
      await browser.execute('mobile: touchAndHold', { 'element': element[0].elementId, 'duration': time });
    } else {
      await browser.execute('mobile: longClickGesture', { 'elementId': element[0].elementId, 'duration': time * 1000 });
    }
  }