implement driver options by titusfortner · Pull Request #1319 · appium/java-client

Change list

  • Added IOSMobileOptions and AndroidMobileOptions for easier capability generation

Types of changes

What types of changes are you proposing/introducing to Java client?

  • No changes in production code.
  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Details

This is to follow the same approach that Selenium Java bindings have taken with their Browser Options classes. Since DesiredCapabilities will soon be deprecated, users will either need to update to MutableCapabilities or otherwise use an Options class like this. An Options class has the advantage of encapsulating specific behaviors to IOS and Android.

Note that this is a draft to get feedback before I implement all of the IOS & Android specific capabilities.

Honestly, this would be a lot less time consuming if we do some reflection magic with Java 9, but I don't think Appium is at the point where it is willing to require > 8?