# Appium 1.9.0 Released

**URL:** <https://discuss.appium.io/t/appium-1-9-0-released/23346>\
**Category:** News\
**Created:** [August 27, 2018, 7:16pm UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346 "2018-08-27T19:16:10Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![isaac](https://discuss.appium.io/user_avatar/discuss.appium.io/isaac/32/5172_2.png) [@isaac](https://discuss.appium.io/u/isaac)\
**Post date:** [August 27, 2018, 7:16pm UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/1 "2018-08-27T19:16:10Z")

</div>

# CHANGES IN VERSION 1.9.0 (from 1.8.1)

Appium 1.9.0 is a feature release, comprising multiple updates.

#### General

- Full W3C Specification support.
- Add full beta of [Espresso driver](https://github.com/appium/appium-espresso-driver)  
for Android automation (used by specifying `automationName` capability to be  
`"Espresso"`).
- Add driver for [Samsung Tizen devices](https://github.com/Samsung/appium-tizen-driver)
- Add `-image` find element strategy,
- Fix `--async-trace` server argument, and rename as `--long-stacktrace`
- Sample code has been moved into the main repository to aid in maintenance.
- Fix status retrieval to speed up performance.

#### iOS

- Add support for Xcode 10 beta 5 and iOS 12 beta 5.
- Add preliminary support for MacOS Mojave beta.
- Add face id biometric support.
- Fix retrieval of device time, and add optional `format` parameter.
- Do not crash if there is no `idevicesyslog` when ending session.
- Handle frames when page changes in Safari.
- Add desired capabilities:
  - `remoteDebugProxy` - port or Unix domain socket on which a proxy for the  
remote debugger sits.
  - `safariGarbageCollect` - turn on/off JS garbage collection in Safari.
  - `showSafariNetworkLog` - print Safari network logs in the Appium server logs.
  - `mjpegServerPort` - port to which screenshots can be streamed.

- Fix handling of settings updates, so simulators are not restarted unnecessarily.
- Allow pulling of folder from real devices.
- Add `mobile: getContexts` execute function, to retrieve meta-information (title,  
url, etc.) about available contexts.
- Fix certificate retrieval and handling.
- Fix cookie handling, to allow secure cookies.
- Fix Safari timeout issues.
- Add support to retrieve Safari network logs, as `safariNetwork` log type.

#### Android

- Update Chromedriver to v2.41.
- Get Chrome version for Webviews in Android 7+, to find correct Chromedriver.
- Make sure UiAutomator processes are cleaned up during test.
- Fix handling of `autoWebview` capability.
- New desired capabilities:
  - `mjpegScreenshotUrl` - url to stream screenshots to.
  - `chromedriverUseSystemExecutable` - boolean flag to use the default Chromedriver  
installed with Appium, avoiding any attempt to find correct Chromedriver.
  - `disableWindowAnimation` - disable window animations on device (now available  
on UiAutomator _and_ UiAutomator2).
  - `pageLoadStrategy` - page load strategy for Chromedriver.

- Allow test-only APKs to be installed.
- Fix implicit wait handling for finding elements.
- Better handle Unicode IME installation.
- Relax package validation logic.
- Fix error in UiAutomator searches with nested quotes.
- Perform accessibility refresh when needed on UiAutomator2.
- Improve logic for determining if apps need upgrade.
- Fix screen recording to allow longer recordings, up to 30 minutes.

---

<div class="post-metadata">

**Author:** ![isaac](https://discuss.appium.io/user_avatar/discuss.appium.io/isaac/32/5172_2.png) [@isaac](https://discuss.appium.io/u/isaac)\
**Post date:** [August 27, 2018, 7:16pm UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/2 "2018-08-27T19:16:43Z")

</div>



---

<div class="post-metadata">

**Author:** ![Mayuresh\_Shirodkar](https://discuss.appium.io/letter_avatar_proxy/v4/letter/m/a3d4f5/32.png) [@Mayuresh\_Shirodkar](https://discuss.appium.io/u/Mayuresh_Shirodkar)\
**Post date:** [August 28, 2018, 4:42am UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/3 "2018-08-28T04:42:51Z")

</div>

npm install -g appium@beta --verbose installs appium@1.8.2-beta.  
Is this an issue? or am i using the wrong command here for the Beta.

> npm info lifecycle appium@1.8.2-beta~postinstall: appium@1.8.2-beta  
> npm timing action:postinstall Completed in 105ms  
> npm verb unlock done using /Users/shirodkm/.npm/\_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node\_modules/.staging  
> npm timing stage:executeActions Completed in 31825ms  
> npm timing stage:rollbackFailedOptional Completed in 1ms  
> npm timing stage:runTopLevelLifecycles Completed in 34508ms

- appium@1.8.2-beta  
added 594 packages from 410 contributors in 34.513s  
npm verb exit [0, true]  
npm timing npm Completed in 34859ms  
npm info ok

---

<div class="post-metadata">

**Author:** ![Abush](https://discuss.appium.io/user_avatar/discuss.appium.io/abush/32/9636_2.png) [@Abush](https://discuss.appium.io/u/Abush)\
**Post date:** [September 5, 2018, 7:00am UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/4 "2018-09-05T07:00:17Z")

</div>

1. 1.9.0 is opened from cmd very very slow
2. parallel has series issues, more then 2 devices not working

Very not stable:  
Unhandled rejection Error: UiAUtomator shut down unexpectedly  
at AndroidBootstrap.callee$2$0$

Back to 8.1,  
Thanks,  
Eyal

---

<div class="post-metadata">

**Author:** ![MrZigaS](https://discuss.appium.io/user_avatar/discuss.appium.io/mrzigas/32/14173_2.png) [@MrZigaS](https://discuss.appium.io/u/MrZigaS)\
**Post date:** [September 6, 2018, 9:04am UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/5 "2018-09-06T09:04:34Z")

</div>

After upgrading Appium to v1.9.0, I’m getting error on wait.until(…) an error:

```
[W3C] Encountered internal error running command: BadParametersError: Parameters were incorrect. We wanted "W3C protocol expects any of script, pageLoad or implicit to be set" and you sent {"type":"implicit","ms":300}

```

Does anyone know what causes this error? The problem seems to be in this line of code, but I do not know what is the correct way:

```
driver.manage().timeouts().implicitlyWait(300, TimeUnit.MILLISECONDS);
```

---

<div class="post-metadata">

**Author:** ![MrZigaS](https://discuss.appium.io/user_avatar/discuss.appium.io/mrzigas/32/14173_2.png) [@MrZigaS](https://discuss.appium.io/u/MrZigaS)\
**Post date:** [September 6, 2018, 9:06am UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/6 "2018-09-06T09:06:50Z")

</div>

Also any I have a code like this:

> public static boolean isElementPresent(Appium driver, By by) {  
> try {  
> driver.findElement(by);  
> return true;  
> } catch (Exception e) {  
> return false;  
> }  
> }

And each time this function is called and element isn’t present, I get and error:

> [MJSONWP] Encountered internal error running command: NoSuchElementError: An element could not be located on the page using the given search parameters.  
> [MJSONWP] at XCUITestDriver.callee$0$0$ (/usr/local/lib/node\_modules/appium/node\_modules/appium-xcuitest-driver/lib/commands/find.js:130:13)  
> [MJSONWP] at tryCatch (/usr/local/lib/node\_modules/appium/node\_modules/babel-runtime/regenerator/runtime.js:67:40)  
> [MJSONWP] at GeneratorFunctionPrototype.invoke [as \_invoke] (/usr/local/lib/node\_modules/appium/node\_modules/babel-runtime/regenerator/runtime.js:315:22)  
> [MJSONWP] at GeneratorFunctionPrototype.prototype.(anonymous function) [as throw] (/usr/local/lib/node\_modules/appium/node\_modules/babel-runtime/regenerator/runtime.js:100:21)  
> [MJSONWP] at GeneratorFunctionPrototype.invoke (/usr/local/lib/node\_modules/appium/node\_modules/babel-runtime/regenerator/runtime.js:136:37)

These logs weren’t displayed in the console before - is there any way to disable these?

---

<div class="post-metadata">

**Author:** ![Kelechi](https://discuss.appium.io/letter_avatar_proxy/v4/letter/k/5daacb/32.png) [@Kelechi](https://discuss.appium.io/u/Kelechi)\
**Post date:** [September 6, 2018, 12:08pm UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/7 "2018-09-06T12:08:17Z")

</div>

I just updated to appium 1.9.0. And whenever i try to run a test i get the error message: `org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: The desired capabilities must include either 'appPackage' or 'browserName' Build info: version: '3.5.2', revision: '10229a9', time: '2017-08-21T17:29:55.15Z' System info: host: 'KEL', ip: '192.168.249.2', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_171' Driver info: driver.version: AndroidDriver remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: The desired capabilities must include either 'appPackage' or 'browserName'`  
Meanwhile, i have `appPackage` set in my `DesiredCapabilities` object.

---

<div class="post-metadata">

**Author:** ![mykola-mokhnach](https://discuss.appium.io/user_avatar/discuss.appium.io/mykola-mokhnach/32/4578_2.png) [@mykola-mokhnach](https://discuss.appium.io/u/mykola-mokhnach)\
**Post date:** [September 6, 2018, 12:15pm UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/8 "2018-09-06T12:15:53Z")

</div>

> [@MrZigaS](#):
>
> [W3C] Encountered internal error running command: BadParametersError: Parameters were incorrect. We wanted “W3C protocol expects any of script, pageLoad or implicit to be set” and you sent {“type”:“implicit”,“ms”:300}

Please add your server log to [Appium 'new session' response is not W3C compatible. This switches selenium-java client to old protocol and cause false-positive tests · Issue #11300 · appium/appium · GitHub](https://github.com/appium/appium/issues/11300). This kind of problems happens due to a bug in the protocol retrieval algorithm.

---

<div class="post-metadata">

**Author:** ![mykola-mokhnach](https://discuss.appium.io/user_avatar/discuss.appium.io/mykola-mokhnach/32/4578_2.png) [@mykola-mokhnach](https://discuss.appium.io/u/mykola-mokhnach)\
**Post date:** [September 6, 2018, 12:20pm UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/9 "2018-09-06T12:20:21Z")

</div>

regarding the log: I’ve created a Pr to change its level to `debug`, so you might skip it by setting the minimum logging level. It would not be a good idea to not log it at all, since there is an exception. You may use `!driver.findElements(location).isEmpty()` verification as well and this one won’t produce any traces (and is also faster, since it ignores the implicit wait).

---

<div class="post-metadata">

**Author:** ![MrZigaS](https://discuss.appium.io/user_avatar/discuss.appium.io/mrzigas/32/14173_2.png) [@MrZigaS](https://discuss.appium.io/u/MrZigaS)\
**Post date:** [September 6, 2018, 1:30pm UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/10 "2018-09-06T13:30:47Z")

</div>

Done and thank you for your reply. For now, I will just downgrade Appium version back to 1.8.1.

Btw. What is the minimum logging level? Info?

---

<div class="post-metadata">

**Author:** ![mykola-mokhnach](https://discuss.appium.io/user_avatar/discuss.appium.io/mykola-mokhnach/32/4578_2.png) [@mykola-mokhnach](https://discuss.appium.io/u/mykola-mokhnach)\
**Post date:** [September 6, 2018, 1:45pm UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/11 "2018-09-06T13:45:19Z")

</div>

> [@MrZigaS](#):
>
> Btw. What is the minimum logging level? Info?

The minimum level is `debug`

---

<div class="post-metadata">

**Author:** ![mykola-mokhnach](https://discuss.appium.io/user_avatar/discuss.appium.io/mykola-mokhnach/32/4578_2.png) [@mykola-mokhnach](https://discuss.appium.io/u/mykola-mokhnach)\
**Post date:** [September 6, 2018, 1:46pm UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/12 "2018-09-06T13:46:40Z")

</div>

Use beta if you can. It helps us to catch bugs on early stages. Otheriwse after some time this beta is becoming a release and creates problems like the one above

---

<div class="post-metadata">

**Author:** ![Daniel\_Graham](https://discuss.appium.io/letter_avatar_proxy/v4/letter/d/cc9497/32.png) [@Daniel\_Graham](https://discuss.appium.io/u/Daniel_Graham)\
**Post date:** [September 20, 2018, 11:22pm UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/13 "2018-09-20T23:22:50Z")

</div>



---

<div class="post-metadata">

**Author:** ![ACBNair](https://discuss.appium.io/letter_avatar_proxy/v4/letter/a/9fc29f/32.png) [@ACBNair](https://discuss.appium.io/u/ACBNair)\
**Post date:** [October 5, 2018, 4:34am UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/14 "2018-10-05T04:34:58Z")

</div>

@Kelechi Did you get a solution for this. I see that you have to set the appPackage for app and browserName for web.

@mykola-mokhnach ; I used to set both values (appPackage’ and ‘browserName’ ) earlier , now it shows error that any one of them shall be accepted.

---

<div class="post-metadata">

**Author:** ![Jagadeesh\_B](https://discuss.appium.io/letter_avatar_proxy/v4/letter/j/eada6e/32.png) [@Jagadeesh\_B](https://discuss.appium.io/u/Jagadeesh_B)\
**Post date:** [October 25, 2018, 10:00am UTC](https://discuss.appium.io/t/appium-1-9-0-released/23346/15 "2018-10-25T10:00:22Z")

</div>

Does Appium v1.9.0 support image recognition??
