iOS 8 swipe / scrollTo

@0x1mason, I updated to Appium 1.3.3 and I still cannot use swipe gesture.

Should the problem be the same as https://github.com/appium/appium/pull/1910? I know this was for ios7 but I am not sure if it is fixed for ios8

This helps. I was still doing this:

   driver = Selenium::WebDriver.for(:remote, :desired_capabilities => capabilities, :url => 'http://127.0.0.1:4723/wd/hub')

instead of

driver = Appium::Driver.new something

I’ll try that out tomorrow.

No dice, Here is the code, the button press happens but the gesture doesn’t. I’ve tried on a number of os versions an the 5s and 6 simulators

require 'appium_lib'

capabilities = {
    deviceName:        'iPhone 5s',
    platformVersion:   '7.1',
    app:               '/Users/blavelle/homeaway-stage-sim.app',
    platformName:      :ios,
    newCommandTimeout: 0,
}
appium = Appium::Driver.new(caps: capabilities)
driver = appium.start_driver

driver.find_element(:name, 'welcome_travelerButton').click

appium.swipe(start_x: 300, end_x: 30, start_y: 50, end_y: 55, duration: 900).perform
appium.swipe(start_x: 0.95, end_x: 0.1, start_y: 0.2, end_y: 0.22, duration: 700).perform

It takes a little while for the 2 swipe attempts to not swipe the screen. I noticed that if I perform the action while the swipes are going on I’ll see something happen but not what I want to happen.

Hi Friends, Happy to see new appium version 1.3.4, So I run few testing on new appium version.

Bugs found : ‘Swipe’ gesture does not work on iOS 8.1 And Xcode 6.1.
Methods used
appium.swipe :start_x => 97, :start_y => 521, :end_x => 229, :end_y => 521, :touchCount => 1, :duration => 500
mobile.swipe :start_x => 97, :start_y => 521, :end_x => 229, :end_y => 521, :touchCount => 1, :duration => 500
driver.swipe :start_x => 97, :start_y => 521, :end_x => 229, :end_y => 521, :touchCount => 1, :duration => 500

Seems like this topic is similar: Swipe broken on 1.3.3? ios 8.1

Apple broke gestures on the iOS simulator a long time ago and never fixed them. It’s not specific to appium.

Hi Swipe also dosent work for me any idea when this will be fixd

Apple broke this about a year ago for the simulators, I would not wait for them to fix this.

I’ve heard that this works for real devices but I’ve been unable to make it work.

I don’t have any problem using swipe with real ios7 devices.

either with the deprecated execute_script ‘mobile: swipe’,… or with TouchAction

def swipe_left
action = Appium::TouchAction.new
action.swipe start_x: 300, end_x: 75, start_y: 500, end_y: 500, duration: 800
action.perform
end

this is working perfectly fine in iOS

@deepukjayan Does this work on simulator or on real device? I have never been able to get the swipe gesture working on simulator and a lot of folks here are facing the same issue

Yes this works perfectly in my device. I haven’t tested in simulator. I assume it will work in simulator also.

My Device spec : iPhone 6 plus iOS 8.3

Then I think it makes sense because the swipe gesture is broken only for simulator. I was able to do a swipe action on real device but not on simulator even with the same app and same script.

I’ve tried using swipe on real devices and simulator - cannot get them to work at all. Any news about this issue? Or maybe ideas/suggestions? I really need to swipe to refresh…

@deepukjayan’s method is working for me on an iOS 8.3 emulator (iPhone 6) with xCode 6.3.2

not on a UIATableView

Hi guys,

I am super excited to say that swipe gesture is finally working on simulator with Xcode 7.
I have tested it with Appium V1.4.11 + Xcode 7 with a tiny hope that it will work, and it does works!
So no more Apple scripts, no more Robot framework and all kind of stuff for workaround

Enjoy!

2 Likes

@tbao What command are you using?

Also do you know if it only works on the iOS9 sim? Right now the app I’m working on needs iOS8 support so I’m using that sim.

@sheady As far as I can see, the swipe gesture is working only for ios 9. But I am not 100% sure because maybe I configure something wrong for ios8
I use this command in Java: driver.swipe(int startx, int starty, int endx, int endy, int duration)

@tbao thanks, I’m in ruby and found a way that works on the iOS8 sim with Xcode7 installed. For whatever reason the code doesn’t work in the Appium Ruby Console.

Appium::TouchAction.new.swipe(start_x: 0, start_y: 300, end_x: 100, end_y: 300, duration: 500).perform