Sauce Labs Customer Idea Portal

Submit an idea and make Sauce Labs even better!

Support disableWindowAnimation capability

Animations are known to make tests more flaky and slower to execute.

In some cases it can even completely block the automation.

Since appium 1.9.1 the "disableWindowAnimation" capability is available on Android for UiAutomator and UiAutomator2. I have tested it locally and it's truly amazing. It would be great if that was supported on SauceLabs as well !

  • Kevin Roulleau
  • Oct 26 2018
  • Already exists
  • Attach files
  • Chandra Yalangi commented
    October 26, 2018 12:52

    Hi Kevin,


    Thank you for your feedback. I will look into it.


    Chandra

  • Kevin Roulleau commented
    November 13, 2018 15:05

    Hello,

    I was wondering if there is any news on this one ?

    Thanks !

  • Chandra Yalangi commented
    November 13, 2018 15:36

    I will discuss the issue with the team tomorrow and get back to you.

  • Chandra Yalangi commented
    November 15, 2018 14:59

    Hi Kevin, I got a chance to discuss the feature request with my team. We should be able to support this feature around mid December. Will that work for you?

  • Kevin Roulleau commented
    November 19, 2018 13:07

    Thanks Chandra, that's really great news !

    Mid December works for me.

  • Chandra Yalangi commented
    November 19, 2018 20:35

    Hi Kevin,


    My apologies, we need some extra time for a few high priority tasks and unfortunately it will probably be end of January before we can add this support.


    Chandra 

  • Kevin Roulleau commented
    November 20, 2018 15:48

    Ok, thanks for letting me know.

    Well that's still a date I can work with, I just hope this doesn't get postponed again and again !

    Have a nice day.

  • Kevin Roulleau commented
    10 Jan 17:38

    Hello Chandra, and happy new year ;)

    I just wanted to check if the dev team is still aligned with the end of january ETA you gave me ?

    This is definitely still something I am rather eager to see implemented.

    Thanks

  • Chandra Yalangi commented
    14 Jan 20:04

    Hi Kevin,

    Happy New Year! sorry to disappoint you. Unfortunately, we had to address some critical tasks and had to push this change out once again. I am hopeful that we can get done with the change in February.


    Chandra

  • Kevin Roulleau commented
    16 Jan 14:18

    Alright, thanks for keeping in touch Chandra.

    I am crossing my fingers for february :)

  • Chandra Yalangi commented
    19 Feb 21:15

    Hi Kevin,

    We looked into this request and found that it should work out of the box. We rarely filter Appium capabilities. Please try out disableWindowAnimation with Appium 1.9.1 or above and let us know if you see any issues.


    Thanks,

    Chandra

  • Kevin Roulleau commented
    21 Feb 15:08

    Hello Chandra, I re-tested it as follow:

    {
      "appiumVersion": "1.9.1",
      "deviceName": "Android GoogleAPI Emulator",
      "platformVersion": "7.1",
      "platformName": "Android",
      "app": "sauce-storage:<myapp.apk>",
      "gpsEnabled": true,
      "disableAndroidWatchers": true,
      "disableWindowAnimation": true,
      "automationName": "UiAutomator2",
      "recordVideo": true,
      "idleTimeout": 6000,
      "newCommandTimeout": "6000"
    }

    It seems that the android developer setting "animator duration scale" is still at 1.0 instead of being set to off, which causes the animations to still be played for me.

    I have tested it locally (using appium 1.10.0, I didn't have 1.9.1 readilly available) and it does work just fine, with all 3 animation settings being set to off (including "animator duration scale").

    Would it be possible that there is some other routine that would re-enable the "animator duration scale" setting ?

  • Chandra Yalangi commented
    21 Feb 15:43

    Hi Kevin,

    Is the issue only with "Animator Duration Scale" are the other two settings disabled? We are in the process of supporting Appium 1.11 on Android, hopefully that will resolve the issue. We should have 1.11 in 2 or 3 weeks.

    Chandra

  • Chandra Yalangi commented
    22 Feb 17:09

    Hi Kevin,

    I thought I saw an update from you but for some reason I don't see it anymore. I reached out to Appium devs yesterday and here is what they mentioned.

    "there was a fix for that in the recent versions the value was not changed on Android API 26 + or smth like that without assigning additional permissions to Appium Settings"

    Chandra

  • Kevin Roulleau commented
    25 Feb 14:52

    Hello Chandra, yes I posted on Friday, but I can't see my message anymore. Fortunately I had it saved before sending it :) Here it is:

    After more investigations I do realize that this does indeed work on the latest android 8.0 emulator, but not on the other emulators I run my tests on. Here are the devices I am using:

                {
                    deviceName: 'Android GoogleAPI Emulator',
                    platformVersion: '5.1',
                },
                {
                    deviceName: 'Android GoogleAPI Emulator',
                    platformVersion: '6.0',
                },
                {
                    deviceName: 'Samsung Galaxy S7 HD GoogleAPI Emulator',
                    platformVersion: '7.1',
                },
                {
                    deviceName: 'Google Pixel GoogleAPI Emulator',
                    platformVersion: '8.0',
                },
     
    Only the google pixel has the animations properly disabled (all 3 settings). The other emulators only have the two first animation settings set to off, and the third one "animator duration scale" is set to 1.0 instead of off.
     
    Also, another odd thing I found by comparing my local logs to saucelabs logs, I can't find the logs that indicate that android driver is launching appium settings app with the intent to disable animations.
    It should be something like this:
    adb -P 5037 -s emulator-5554 shell am broadcast -a io.appium.settings.animation -n io.appium.settings/.receivers.AnimationSettingReceiver --es setstatus disable
     
    Thanks!