Активность, используемая для запуска приложения, не существует или не может быть запущена Appium - PullRequest
1 голос
/ 11 марта 2019

Я использую этот код и не могу запустить приложение на моем мобильном устройстве

package Mobileapp1;
.
.
import io.appium.java_client.remote.MobileCapabilityType;

public class Apptesting
{
    public static void main(String[] args) throws MalformedURLException
    {
    DesiredCapabilities c=new DesiredCapabilities();
    c.setCapability(CapabilityType.BROWSER_NAME, "");
    c.setCapability("deviceName", "ZZ2222HMLF");
    c.setCapability("platformName", "Android");
    c.setCapability("platformversion", "7.0");
    c.setCapability(MobileCapabilityType.APP, "D:\\Appium\\edTheSIS_11_02_2019.apk");
    c.setCapability("noReset", true);
    c.setCapability("autoGrantPermissions", "true");
    c.setCapability("appPackage","com.sisapp.in.sisapp");
    //c.setCapability("appPackage","com.sisapp.in.sisapp.SplashActivity"); Tried not working same issue
    c.setCapability("appActivity", "SplashActivity");
    //c.setCapability("appActivity",".md5b1afd03e09ce5243fd0287b176ff38ea.MainActivity");
    URL U=new URL("http://127.0.0.1:4723/wd/hub");
    WebDriver driver=new AndroidDriver(U,c);
    //driver.findElement(By.linkText("Username")).sendKeys("as@ct");
    }
}

TLDR:

Исходная ошибка: имя операции «.SplashActivity» используется для запускаприложение не существует или не может быть запущено!Убедитесь, что он существует и является активностью, которую можно запустить

Ниже приведен журнал ошибок

log4j: ПРЕДУПРЕЖДЕНИЕ. Не удалось найти ни одного дополнения для регистратора (org.apache.http.client.protocol.RequestAddCookies).log4j: WARN Пожалуйста, правильно инициализируйте систему log4j.log4j: WARN См. http://logging.apache.org/log4j/1.2/faq.html#noconfig для получения дополнительной информации.Исключение в потоке "main" org.openqa.selenium.WebDriverException: неизвестная ошибка на стороне сервера при обработке команды.Исходная ошибка: не удается запустить приложение com.sisapp.in.sisapp.Посетите https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md для устранения неполадок.Исходная ошибка: не удается запустить приложение com.sisapp.in.sisapp.Посетите https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md для устранения неполадок.Исходная ошибка: имя действия «.SplashActivity», использованное для запуска приложения, не существует или не может быть запущено!Убедитесь, что он существует и является активностью запуска. Информация о сборке: версия: '3.8.1', ревизия: '6e95a6684b', время: '2017-12-01T19: 05: 14.666Z' Информация о системе: хост: 'DELL30', ip: '10 .10.4.222 ', os.name:' Windows 7 ', os.arch:' amd64 ', os.version:' 6.1 ', java.version:' 1.8.0_151 'Информация о драйвере: driver.version: удаленный AndroidDriverstacktrace: UnknownError: При обработке команды произошла неизвестная ошибка на стороне сервера.Исходная ошибка: не удается запустить приложение com.sisapp.in.sisapp.Посетите https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md для устранения неполадок.Исходная ошибка: не удается запустить приложение com.sisapp.in.sisapp.Посетите https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md для устранения неполадок.Исходная ошибка: имя действия «.SplashActivity», использованное для запуска приложения, не существует или не может быть запущено!Убедитесь, что он существует и доступен для запуска в getResponseForW3CError (C: \ Users \ arvind \ AppData \ Local \ appium-desktop \ app-1.10.0 \ resources \ app \ node_modules \ appium-base-driver \ lib \ protocol \ errors.js: 826: 9) в asyncHandler (C: \ Users \ arvind \ AppData \ Local \ appium-desktop \ app-1.10.0 \ resources \ app \ node_modules \ appium-base-driver \ lib \ protocol \ protocol.js: 447: 37) в process._tickCallback (internal / process / next_tick.js: 68: 7) в sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance (неизвестный источник) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (Unknown Source) в java.lang.reflect.Constructor.newInstance (Unknown Source) в org.openqa.selenium.remote.W3CHandshakeResponse.lambda $ новый $ 0 (W3CHandshakeResponse.java:57) в org.openqa.selenium.remote.W3CHandshakeResponse.lambda $ getResponseFunction $ 2 (W3CHandshakeResponse.java:104) в org.openqa.selenium.remote.ProtocolHandshake.lambda $ createSession $ 0 (ProtocolHandshake.java: 123) на java.util.stream.ReferencePipeline $ 3 $ 1.accept (неизвестный источник) на java.util.Spliterators $ ArraySpliterator.tryAdvance (неизвестный источник) на java.util.stream.ReferencePipeline.forEachWithCancel (неизвестный источник) на java.util.stream.AbstractPipeline.copyIntoWithCancel (неизвестный источник) в java.util.stream.AbstractPipeline.copyInto (неизвестный источник) в java.util.stream.AbstractPipeline.wrapAndCopyInto (неизвестный источник) в java.util.stream.FindOps $.evaluateSequential (Неизвестный источник) в java.util.stream.AbstractPipeline.evaluate (Неизвестный источник) в java.util.stream.ReferencePipeline.findFirst (Неизвестный источник) в org.openqa.selenium.remote.ProtocolHandshake.createSession (ProtocolHands): 126) в org.openqa.selenium.remote.ProtocolHandshake.createSession (ProtocolHandshake.java:73) в org.openqa.selenium.remote.HttpCommandExecutor.execute (HttpCommandExecutor.java:142.remote.app.jote_app.jote_app.io.app.AppiumCommandExecutor.execute (AppiumCommandExecutor.java:89) вorg.openqa.selenium.remote.1) в io.appium.java_client.android.AndroidDriver.execute (AndroidDriver.java:1) в org.openqa.selenium.remote.RemoteWebDriver.startSession (RemoteWebDriver.java:219) в org.openqa.veremote.remote. (RemoteWebDriver.java:142) в io.appium.java_client.DefaultGenericMobileDriver. (DefaultGenericMobileDriver.java:38) в io.appium.java_client.AppiumDriver. (AppiumDriver.java:83D).AppiumDriver.java:93) на io.appium.java_client.android.AndroidDriver. (AndroidDriver.java:72) на Mobileapp1.Apptesting.main (Apptesting.java:29)

Ответы [ 3 ]

2 голосов
/ 12 марта 2019

Если вы используете приложение , вам не нужно указывать appPackage и appActivity .Также, если вы не тестируете собственные приложения, browserName возможность не требуется.

DesiredCapabilities c=new DesiredCapabilities();
c.setCapability("deviceName", "ZZ2222HMLF");
c.setCapability("platformName", "Android");
c.setCapability("app", "D:\\Appium\\edTheSIS_11_02_2019.apk");
c.setCapability("noReset", true);
c.setCapability("autoGrantPermissions", "true");
URL U=new URL("http://127.0.0.1:4723/wd/hub");
AppiumDriver<MobileElement> driver=new AndroidDriver(U,c);

Если вы хотите узнать appPackage и appActivity вашего приложения вы можете подключить ваше устройство к компьютеру, открыть приложение и выполнить следующие команды:

adb shell
dumpsys window windows | grep -E 'mFocusedApp'

Это покажет ваши appActivity и appPackage.Чтобы узнать больше об этом вы можете проверить эту ссылку .

1 голос
/ 12 марта 2019

Попробуйте указанные ниже зависимости, вы можете запустить приложение, не упоминая MainActivity.

  1. Перед выполнением кода убедитесь, что сервер Appium запущен
  2. Чтобы убедиться, что вы можете использовать сессию инспектора Appium и поставить нужные возможности, попробуйте запустить сеанс. Это самый надежный и простой способ проверить ваши желаемые возможности.

    DesiredCapabilities cap = new DesiredCapabilities();
    File appDir = new File("Folder path to .apk file location");
    File newApp = new File (appDir ,"Project.apk" );
    
            /* ANDROID DEPENDENCIES START*/
    
            cap.setCapability(CapabilityType.BROWSER_NAME, "");
            cap.setCapability("deviceName", "Nexus5XAPI26");
            cap.setCapability("udid", "YourDeviceUDID");
            cap.setCapability("platformName", "Android");
            cap.setCapability("platformVersion","7.1.1");
            cap.setCapability("automationName", "UiAutomator2");
            cap.setCapability("app", newApp.getAbsolutePath());
    
            /* ANDROID DEPENDENCIES END */
    
    cap.setCapability("app", newApp.getAbsolutePath());
    appDriver = new AppiumDriver(new URL("http://0.0.0.0:4723/wd/hub"), cap);
    
1 голос
/ 11 марта 2019

Для меня использование полного пути «appActivity» обычно работает:

c.setCapability("appPackage","com.sisapp.in.sisapp.SplashActivity");

Или, может быть, ваше начальное действие имеет другое имя.Затем попробуйте узнать реальное имя текущего действия после того, как вы запустили приложение вручную через ADB:

adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'

или

adb shell dumpsys activity
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...