C # Appium IsAppInstalled ошибка: не удалось найти пакет - PullRequest
0 голосов
/ 05 июня 2018

Проблема

Здравствуйте.

У меня есть класс в C #, чтобы проверить, установлено ли мое приложение на моем устройстве.

Когда на моем устройстве установлено приложение, все работает нормально.Однако, когда на моем устройстве не установлено приложение, система выдает мне следующее сообщение об ошибке:

Сообщение:

Метод теста MYAPP.Main.RunTest.RunAllTests выбросил исключение: Система.InvalidOperationException: при обработке команды произошла неизвестная ошибка на стороне сервера.Исходная ошибка: Не удалось найти пакет com.android.MyApp на устройстве

Как использовать и объявить IsAppInstalled?

Я использую VS 2017 Community.

Среда

  • Версия Appium (или git revision), в которой обнаружена проблема: Драйвер Appium v4.0.30319
  • Последняя версия Appium, в которой не возникла проблема(если применимо): та же
  • настольная ОС / версия, используемая для запуска Appium: Windows 10 Pro
  • версия Node.js (если не используется Appium.app | exe): Node.js v10.1.0
  • Мобильная тестируемая платформа / версия: Android 8.0
  • Реальное устройство или эмулятор / симулятор: Реальное устройство Samsung S9
  • Appium CLI или Appium.app | exe: Appium Server v1.8.0

Подробности

My Capabilities:

public class CapDeviceConfig{

    public DesiredCapabilities CapDeviceConfigOptions(){
        //set the capabilities (https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md)

        DesiredCapabilities cap = new DesiredCapabilities();
        cap.SetCapability("automationName", "Appium"); // Which automation engine to use
        cap.SetCapability("platformName", "Android"); // Which mobile OS platform to use
        cap.SetCapability("platformVersion", "8.0.0"); // Mobile OS version
        cap.SetCapability("deviceName", "starlte"); // The kind of mobile device or emulator to use // S9
        cap.SetCapability("udid", "2270048324037ece"); // Unique device identifier of the connected physical device
        cap.SetCapability("appPackage", "com.android.MyApp");
        cap.SetCapability("appActivity", "md5ab6683a3e3c3f0bd6864e3305b4e45c6.SplashScreenActivity");    
        cap.SetCapability("noReset", "True"); // Don't reset app state before this session.
        cap.SetCapability("printPageSourceOnFindFailure", "True"); // When a find operation fails, print the current page source.
        return cap;
    }
}

Ссылка на журналы Appium

https://gist.github.com/pbmzbr/b0638a0237c7d846de2e94000163c1f6

Код для воспроизведения проблемы

public class AppInstallVerification{

            //Creating instance for Appium driver
            AppiumDriver<AndroidElement> driverCheck;

            CapDeviceConfig cap = new CapDeviceConfig();

            EnrollmentTests enrollmentTests = new EnrollmentTests();

            InstallApp install = new InstallApp();

            public void IsAppInstalled(){

                cap.CapDeviceConfigOptions();
                driverCheck = new AndroidDriver<AndroidElement>(new Uri("http://127.0.0.1:4723/wd/hub"), cap.CapDeviceConfigOptions());

                if (driverCheck.IsAppInstalled("com.android.MyApp"))
                {
                    Console.WriteLine("App is installed!");
                    enrollmentTests.CodeApplied();
                }
                else
                {
                    Console.WriteLine("App is not installed!");
                    install.InstallingApp();
                }            
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...