Hi everyone, we’ve got a fantastic release ready for you, with tons of stuff! Want to try it out right now? Head to your terminal and get the latest from NPM:
Note: This is a feature release, marking two major changes:
Support iOS 11 through Xcode 9 beta 6
Support multiple simultaneous sessions in Android and iOS (9+)
Known Issues:
Android
Webviews on Android O do not work because of a bug in Chromedriver. We
are working on a workaround. Chrome sessions still work
iOS
Touch ID enrollment on simulators in Xcode 9 does not work because of an
issue with AppleScript
Scaling simulators with Xcode 9 does not work
Simulators in Xcode 9 produce no meaningful device logs
Parallel Safari/Webview sessions are not working due to an Apple bug
General
Fix handling of sending keys to elements in recent versions of Selenium
Allow app capability that is a url to have query parameters
Begin to allow multiple device support in situations where it is possible
(e.g., iOS under Xcode 9)
Add isHeadless capability to allow running simulator/emulator with no UI
iOS
Add command to upload media to simulator
Fix reliability of touch ID functionality
Fix detection of system apps
Update atoms used for MobileSafari automation to those of Selenium 3.5.3
Add realDeviceLogger capability to allow specification of what program to
use to capture logs on real device
Fix handling of enablePerformanceLogging capability in Safari tests
Fix offset when Safari on an iPad has multiple tabs
iOS - XCUITest
Support for latest Beta of iOS 11 (Xcode 9 beta 6)
Multiple device support
Fix handling of bundle id on simulators
Make nativeWebTap a setting as well as a desired capability
Allow nativeWebTap to work on real devices
Do not try to uninstall app before installing on real device, which was causing
many issues
Fix clearing of text fields
Change behavior of useNewWDA: if true, forces uninstall of any existing
WebDriverAgent app on device. Set it to true if you want to apply different
startup options for WebDriverAgent for each session. Real devices require
WebDriverAgent client to run for as long as possible without reinstall/restart
to avoid issues. The false value will try to detect currently running WDA
listener executed by previous testing session(s) and reuse it if possible,
which is highly recommended for real device testing and to speed up suites of
multiple tests in general. A new WDA session will be triggered at the default
URL (http://localhost:8100) if WDA is not listening and webDriverAgentUrl
capability is not set.
Allow setting url in native context
Fix screenshot functionality
Android
Add remoteAdbHost capability to specify the host on which adb is running, if
it is not localhost
Add methods to start and stop recording the screen
Fix screenshot commands
Skip setting of mock location for emulators
Add methods for emulator phone capacity: sendSMS, gsmCall, gsmSignal, gsmVoice, powerAC, powerCapacity, and networkSpeed
Fix cleanup of adb port forwarding during Chrome sessions
Fix error where package name would be appended to fully qualified activity
name and package finding would then fail
Properly handle bootstrap failure on launch
Make sure correct logger is used for bootstrap
Android - UIAutomator 2
Fix handling of adbPort capability
Fix coverage handling
Handle pressing and long pressing key codes
Enable nativeWebScreenshot capability
Fix restoring of IME when unicodeKeyboard/resetKeyboard capabilities are
used
Add disableWindowAnimation capability to launch instrumentation with no
animation
Correctly start ChromeDriver session for Chrome session
@micahwilliams12 Whats corresponding Python Appium Client version for java-client version 5.0.3?
I am facing issue with save_screenshot in iOS 11.
This got fixed after updating libimobiledevice. Here are the steps:
brew uninstall libimobiledevice
brew install --HEAD libimobiledevice
the SQAEvangelist test automation framework is using the java client and always works great. Thanks again for the great work!
We have been noticing an issue not mentioned here: Screenshots not working with the latest IOSDriver and Xcode 9 / iOS 11 and java client 5.0.3. Is anyone else experiencing the problem or is there another technique to do this now?
Hello, can you provide more details - I’m trying to launch several tests on the same appium, but either they try to use the same simulator (if I query the same version, e.g. 10.2) or a new one is launched (if I try to run 10.2 and 10.3) but the automation happens only on the first one, i.e. the second test launches the new simulator but the commands are performed on the first one. May be some special capabilities are to be set?
Set the udid desired capability, which is unqiue per simulator. Run instruments -w devices to list all available simulators and their udids.
EDIT: Ok, i’m unable to run multiple iOS simulators at once. But I can run Android and iOS emulators and UI tests at the same time on the same appium server.
I´ve been trying out appium for some days now and i´m having some troubles with it. I´ve automated a test on an app on Rubymine and was able to run it on 2 android devices through Selenium grid. The problem is that i have to, after i start the hub, register 2 nodes and start 2 appium servers with an udid on default capabilities for each one. I would like to just start 1 appium server and selenium grid would choose which device is available. When i do that the test starts on the 1st device and when i start a second test it just overrrides the 1st test on the 1st device. On the test im not passing any udid. here is my node and what i do to start the hub and the node with 2 instances. I have 2 emulators with android 7.0.
I start the hub with: java -jar selenium-server-standalone-3.5.3.jar -role hub
and the node: appium --nodeconfig ./android.json -a 127.0.0.1 -p 4723 -ca 127.0.0.1 -cp 4723
It would be awesome if selenium grid chose an available device. Thanks!
Hello, It worked for me with using different udid of course for the different simulators, and then each test suite have to run with a different wda port.