Create instance of AndroidDriver in C# - Method not found OpenQA.Selenium.Remote.CommandInfoRepository.get_Instance

Hello.
I’m trying to run sample code of test in C#. My code (based on Home · appium/dotnet-client Wiki · GitHub):

namespace AppiumC
{
    [TestFixture]
    public class AppiumTestSuite
    { 
        private AppiumDriver<AppiumWebElement> driver;
        [SetUp]
        public void BeforeAll()
        {
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.SetCapability("device", "Android");
            capabilities.SetCapability("deviceName", "emulator");
            capabilities.SetCapability("platformName", "Android");
            capabilities.SetCapability("appPackage", "com.android.calculator2");
            capabilities.SetCapability("appActivity", "com.android.calculator2.Calculator");
            driver = new AndroidDriver<AppiumWebElement>(new Uri("http://127.0.0.1:4723/wd/hub"),capabilities);
        }

        [TearDown]
        public void AfterAll()
        {
            driver.Quit(); 
        }

        [Test]
        public void CheckTestEnvironment()
        {
            Assert.True(true);
        }
    }
}

I use nUnit. Error I get is:

AppiumC.AppiumTestSuite.CheckTestEnvironment:
SetUp : System.MissingMethodException : Method not found: 'OpenQA.Selenium.Remote.CommandInfoRepository OpenQA.Selenium.Remote.CommandInfoRepository.get_Instance()'.
at OpenQA.Selenium.Appium.AppiumDriver`1._AddAppiumCommands()
at AppiumC.AppiumTestSuite.BeforeAll() in c:\Projects\AppiumC\AppiumC\Class1.cs:line XX

where line XX is:

driver = new AndroidDriver<AppiumWebElement>(new Uri("http://127.0.0.1:4723/wd/hub"),capabilities);

I downloaded libs by nuget:
appium-dotnet-driver 1.4.0.3 (Appium Dotnet Driver)
nunit.framework 2.6.4.14350
WebDriver 2.48.0.0 (Selenium WebDriver API .NET Bindings)
WebDriver.Support 2.47.0.0 (Selenium WebDriver .NET Bindings support classes)

Output in Appium v1.4.0:

Starting Node Server
warn: Appium support for versions of node < 0.12 has been deprecated and will be removed in a future version. Please upgrade!
info: Welcome to Appium v1.4.0 (REV 8f63e2f91ef7907aed8bda763f4e5ca08e86970a)
info: Appium REST http interface listener started on 127.0.0.1:4723
info: [debug] Non-default server args: {“address”:“127.0.0.1”,“logNoColors”:true,“platformName”:“Android”,“platformVersion”:“18”,“automationName”:“Appium”}
info: Console LogLevel: debug
info: → POST /wd/hub/session {“desiredCapabilities”:{“device”:“Android”,“deviceName”:“emulator”,“platformName”:“Android”,“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”}}
info: Client User-Agent string: undefined
info: [debug] The following desired capabilities were provided, but not recognized by appium. They will be passed on to any other services running on this server. : device
info: [debug] Didn’t get app but did get Android package, will attempt to launch it on the device
info: [debug] Creating new appium session ff2d8fe0-cda1-4302-9084-e332830df495
info: Starting android appium
info: [debug] Getting Java version
info: Java version is: 1.8.0_60
info: [debug] Checking whether adb is present
info: [debug] Using adb from C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe
warn: No app capability, can’t parse package/activity
info: [debug] Set chromedriver binary as: C:\Program Files (x86)\Appium\node_modules\appium\build\chromedriver\windows\chromedriver.exe
info: [debug] Using fast reset? true
info: [debug] Preparing device for session
info: [debug] Not checking whether app is present since we are assuming it’s already on the device
info: Retrieving device
info: [debug] Trying to find a connected android device
info: [debug] Getting connected devices…
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” devices
info: [debug] 1 device(s) connected
info: Found device emulator-5554
info: [debug] Setting device id to emulator-5554
info: [debug] Waiting for device to be ready and to respond to shell commands (timeout = 5)
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 wait-for-device
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 shell “echo ‘ready’”
info: [debug] Starting logcat capture
info: [debug] Getting device API level
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 shell “getprop ro.build.version.sdk”
info: [debug] Device is at API Level 18
info: Device API level is: 18
info: [debug] Extracting strings for language: default
info: [debug] Apk doesn’t exist locally
info: [debug] Could not get strings, but it looks like we had an old strings file anyway, so ignoring
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 shell “rm -rf /data/local/tmp/strings.json”
info: [debug] Not uninstalling app since server not started with --full-reset
info: [debug] Skipping install since we launched with a package instead of an app path
info: [debug] Forwarding system:4724 to device:4724
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 forward tcp:4724 tcp:4724
info: [debug] Pushing appium bootstrap to device…
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 push “C:\Program Files (x86)\Appium\node_modules\appium\build\android_bootstrap\AppiumBootstrap.jar” /data/local/tmp/
info: [debug] Pushing settings apk to device…
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 install “C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk”
info: [debug] Pushing unlock helper app to device…
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 install “C:\Program Files (x86)\Appium\node_modules\appium\build\unlock_apk\unlock_apk-debug.apk”
info: Starting App
info: [debug] Attempting to kill all ‘uiautomator’ processes
info: [debug] Getting all processes with ‘uiautomator’
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 shell “ps ‘uiautomator’”
info: [debug] No matching processes found
info: [debug] Running bootstrap
info: [debug] spawning: C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -s emulator-5554 shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Bootstrap -e pkg com.android.calculator2 -e disableAndroidWatchers false
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: current=1
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: class=io.appium.android.bootstrap.Bootstrap
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: stream=
info: [debug] [UIAUTOMATOR STDOUT] io.appium.android.bootstrap.Bootstrap:
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: numtests=1
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: test=testRunServer
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE: 1
info: [debug] [BOOTSTRAP] [debug] Socket opened on port 4724
info: [debug] [BOOTSTRAP] [debug] Appium Socket Server Ready
info: [debug] [BOOTSTRAP] [debug] Loading json…
info: [debug] Waking up device if it’s not alive
info: [debug] Pushing command to appium work queue: [“wake”,{}]
info: [debug] [BOOTSTRAP] [debug] Registered crash watchers.
info: [debug] [BOOTSTRAP] [debug] Client connected
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“wake”,“params”:{}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: wake
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 shell “dumpsys window”
info: [debug] [BOOTSTRAP] [debug] Returning result: {“value”:true,“status”:0}
info: [debug] Screen already unlocked, continuing.
info: [debug] Pushing command to appium work queue: [“getDataDir”,{}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“getDataDir”,“params”:{}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getDataDir
info: [debug] [BOOTSTRAP] [debug] Returning result: {“value”:“/data”,“status”:0}
info: [debug] dataDir set to: /data
info: [debug] Pushing command to appium work queue: [“compressedLayoutHierarchy”,{“compressLayout”:false}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“compressedLayoutHierarchy”,“params”:{“compressLayout”:false}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: compressedLayoutHierarchy
info: [debug] [BOOTSTRAP] [debug] Returning result: {“value”:false,“status”:0}
info: [debug] Getting device API level
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 shell “getprop ro.build.version.sdk”
info: [debug] Device is at API Level 18
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 shell “am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n com.android.calculator2/com.android.calculator2.Calculator”
info: [debug] Waiting for pkg “com.android.calculator2” and activity “com.android.calculator2.Calculator” to be focused
info: [debug] Getting focused package and activity
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 shell “dumpsys window windows”
info: [debug] executing cmd: “C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” -s emulator-5554 shell “getprop ro.build.version.release”
info: [debug] Device is at release version 4.3.1
info: [debug] Device launched! Ready for commands
info: [debug] Setting command timeout to the default of 60 secs
info: [debug] Appium session started with sessionId ff2d8fe0-cda1-4302-9084-e332830df495
info: ← POST /wd/hub/session 303 2696.230 ms - 74
info: → GET /wd/hub/session/ff2d8fe0-cda1-4302-9084-e332830df495 {}
info: [debug] Responding to client with success: {“status”:0,“value”:{“platform”:“LINUX”,“browserName”:“Android”,“platformVersion”:“4.3.1”,“webStorageEnabled”:false,“takesScreenshot”:true,“javascriptEnabled”:true,“databaseEnabled”:false,“networkConnectionEnabled”:true,“locationContextEnabled”:false,“warnings”:{},“desired”:{“device”:“Android”,“deviceName”:“emulator”,“platformName”:“Android”,“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”},“device”:“Android”,“deviceName”:“emulator-5554”,“platformName”:“Android”,“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”},“sessionId”:“ff2d8fe0-cda1-4302-9084-e332830df495”}
info: ← GET /wd/hub/session/ff2d8fe0-cda1-4302-9084-e332830df495 200 1.326 ms - 650 {“status”:0,“value”:{“platform”:“LINUX”,“browserName”:“Android”,“platformVersion”:“4.3.1”,“webStorageEnabled”:false,“takesScreenshot”:true,“javascriptEnabled”:true,“databaseEnabled”:false,“networkConnectionEnabled”:true,“locationContextEnabled”:false,“warnings”:{},“desired”:{“device”:“Android”,“deviceName”:“emulator”,“platformName”:“Android”,“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”},“device”:“Android”,“deviceName”:“emulator-5554”,“platformName”:“Android”,“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”},“sessionId”:“ff2d8fe0-cda1-4302-9084-e332830df495”}

Appium launched Calculator on Emulator proprly. But with this error running tests is impossible.
Please suggest, what I do wrong? I’m new in Appium for dot net…

This test is working for 1.3.0.1.

From my packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Appium.WebDriver" version="1.3.0.1" targetFramework="net45" />
  <package id="Castle.Core" version="3.3.3" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net45" />
  <package id="NUnit" version="2.6.4" targetFramework="net45" />
  <package id="Selenium.Support" version="2.46.0" targetFramework="net45" />
  <package id="Selenium.WebDriver" version="2.46.0" targetFramework="net45" />
</packages>

Now test passed.
Is it a bug in appium-dotnet-driver 1.4.0.3 ? Somebody can reproduce?

I’m running into the exact same issue after updating to 1.4.0.3. Happens with Both iOS and Android tests, right after it runs getTreeForXML which returns everything correctly.

Looks like it’s an issue when you update both appium and selenium. If you downgrade to selenium 2.47.0 and keep appium at 1.4.0.3 it works! Looks like some method got deleted in the latest selenium release that appium was using.

1 Like

Are there any news on this one?

It is already fixed in 1.4.1.1

Hey guys, any way to bypass this issue without upgrading Appium?
I am on Appium v1.2.08 and when I upgrade to 1.4.11 I open a can of worms…
I was forced to upgrade the WebDriver and now I have dozens of errors if I try to upgrade to 1.4.11