Swiping a cell resulting in a tap

iOS 10.3, Simulator, Appium Desktop 1.2.4, Java 8.131.
Attempting to swipe a cell from right to left to bring out a swipe-to-delete style button, but I’m getting a tap every time.

Appium Inspector also seems unable to swipe this cell (it’s a standard cell in a Table View) using its built-in swipe simulator.

I’ve always been a user of .swipe, but am attempting to get away from it since its deprecation. Not having a great experience with a seemingly simple TouchAction :unamused:

My code (cellMidY is the center of the cell - I’m certain this is accurate):

new TouchAction(driver).press(300, cellMidY).waitAction(500).moveTo(-225, 0).release().perform();

Appium server output:

[HTTP] → POST /wd/hub/session/ec70b5b5-6b12-4e95-a98e-26549927163b/touch/perform {“actions”:[{“action”:“press”,“options”:{“x”:300,“y”:100}},{“action”:“wait”,“options”:{“ms”:500}},{“action”:“moveTo”,“options”:{“x”:-225,“y”:0}},{“action”:“release”,“options”:{}}]}
[MJSONWP] Calling AppiumDriver.performTouch() with args: [[{“action”:“press”,“options”:{“x”:300,“y”:100}},{“action”:“wait”,“options”:{“ms”:500}},{“action”:“moveTo”,“options”:{“x”:-225,“y”:0}},{“action”:“release”,“options”:{}}],“ec70b5b5-6b12-4e95-a98e-26549927163b”]
[XCUITest] Executing command ‘performTouch’
[XCUITest] Received the following touch action: press(options={“x”:300,“y”:100})-wait(options={“ms”:500})-moveTo(options={“x”:-225,“y”:0})-release(options={})
[XCUITest] Found matching gesture: drag
[JSONWP Proxy] Proxying [POST /wda/dragfromtoforduration] to [POST http://localhost:8100/session/7D5C3A86-519F-4908-A6CE-392749547365/wda/dragfromtoforduration] with body: {“fromX”:300,“fromY”:100,“toX”:75,“toY”:100,“duration”:0.5}
[JSONWP Proxy] Got response with status 200: {“value”:{},“sessionId”:“7D5C3A86-519F-4908-A6CE-392749547365”,“status”:0}
[MJSONWP] Responding to client with driver.performTouch() result: null

Try waitAction(0) and let me know if it worked

Still tapping. I’ve tried various waits (including none) and nothing seems to change the behavior.

if you long press that element manually, does it assumes the tap on press or just on release?

It sees the press, but doesn’t perform an action until release.

Then it should work :expressionless:

Crazy idea, try to do perform() without releasing():

new TouchAction(driver).press(300, cellMidY).waitAction(0).moveTo(-225, 0).perform()

Worth a shot, but “Unsupported gesture” error. All the swipe type gestures require a release.

I know this should work… I’m embarrassed even opening this thread.

I’ll have to check with my developers to see if we’re doing something funky in the code.