.NET client has been released

Hi everyone! .NET client has been released recently.

Below is the list of changes:

  • Update to Selenium.Webdriver v2.53.0 and Selenium.Support v2.53.0

  • Update to Newtonsoft.Json v8.0.2

  • FIXED The issue of compatibility of AppiumServiceBuilder with Appium node server v >= 1.5.x.

  • Page object tools were updated. By.Name locator strategy is deprecated for Android and iOS. It is still valid for the Selendroid mode.

  • The DeviceTime property was added and it works with Appium node 1.5

  • improvements of locking methods. The LockDevice(seconds) is obsolete and it is going to be removed in the next release. Since Appium node server v1.5.x it is recommended to use AndroidDriver.Lock()()…AndroidDriver.Unlock() or IOSDriver.Lock(int seconds) instead.

  • AndroidDriver.KeyEvent() is obsolete and it is going to be removed soon. Please use AndroidDriver.PressKeyCode or AndroidDriver.LongPressKeyCode instead.

  • The GetAppStrings(string language = null) method is obsolete now. It is going to be removed.

  • The GetAppStringDictionary(string language = null, string stringFile = null) was added instead. It returns a dictionary with app strings (keys and values) instead of a string. Also it allows the searching app strings in the specified file.

  • All capabilities were added according to https://github.com/appium/appium/blob/1.5/docs/en/writing-running-appium/caps.md. There are three classes:
    OpenQA.Selenium.Appium.Enums.MobileCapabilityType (just modified),
    OpenQA.Selenium.Appium.Enums.AndroidMobileCapabilityType (android-specific capabilities),
    OpenQA.Selenium.Appium.Enums.IOSMobileCapabilityType (iOS-specific capabilities).

  • Some server flags were marked as obsolete because they are deprecated since server node v1.5.x. These options are going to be removed at the next .Net client release.

  • The ability to start Appium node programmatically using desired capabilities. This feature is compatible with Appium node server v >= 1.5.x.

WIKI was changed. see:

The main idea was to synchronize client with server node 1.5 and to keep some backward compatibility with node server v <= 1.4.16. The next release (it is probably will be v2.0.0.1) will be incompatible with old nodes.

There are some plans for the next release:

  • to clean repo of obsolete code.

  • to automate the building/deployment/PR validation. I think .NET has chances to become a solid framework. So human cause and related problems should be excluded. Tiket: #124

  • improve gestures. There are some interesting thoughts related to this PR (not merged yet).

  • To enhance page object tools. #121

This is not the final scope. It will be changed/detailed further.

How do you feel if .NET client would be migrated to C# .NET 4.6 (C# 6.0) ?