【问题标题】:Appium - A new session cannot be created. Activity used to start app doesn't exist or cannot be launchedAppium - 无法创建新会话。用于启动应用的 Activity 不存在或无法启动
【发布时间】:2015-02-10 08:18:47
【问题描述】:

当我选择应用程序路径、包和启动活动启动 Appium 服务器时,服务器将启动我的应用程序,我可以运行我的测试。测试完成后,我退出了驱动程序。

接下来,我尝试在服务器已经运行的情况下再次运行相同的测试。我有在 TestFixtureSetUp 中编写的功能(见下文)。但是,我收到以下错误:

SetUp : System.InvalidOperationException : A new session could not be created. (Original error: Activity used to start app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity) (33)
   at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Appium.AppiumDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
   at MobileAutomationSample.AndroidSimpleTest.BeforeAll() in AndroidSimpleTest.cs: line 42

我的代码:

[TestFixture()]
public class AndroidSimpleTest
{
    private AppiumDriver driver;

    [TestFixtureSetUp]
    public void BeforeAll()
    {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.SetCapability("appium-version", "1.2.4.1");
        capabilities.SetCapability("platformName", "Android");
        capabilities.SetCapability("platformVersion", "5.0");
        capabilities.SetCapability("deviceName", "emulator-5554");
        capabilities.SetCapability("browserName", "");
        capabilities.SetCapability("app", "app-debug.apk");
        capabilities.SetCapability("appPackage", "com.company.app");
        capabilities.SetCapability("appActivity", "com.company.app.MainActivity");
        Uri androidUri = new Uri("http://127.0.0.1:4723/wd/hub");
        driver = new AppiumDriver(androidUri, capabilities, TimeSpan.FromSeconds(180));
        driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
        WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
    }

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

【问题讨论】:

    标签: c# visual-studio-2012 appium


    【解决方案1】:

    需要为应用功能提供绝对路径。一旦提供,问题就解决了。

    【讨论】:

      【解决方案2】:

      只需在afterall 方法中添加driver.closeapp()driver.resetapp()

      【讨论】:

        猜你喜欢
        • 2019-08-01
        • 2015-06-14
        • 1970-01-01
        • 2018-10-25
        • 2013-11-27
        • 2017-05-29
        • 2020-06-15
        • 2020-02-02
        • 2021-03-18
        相关资源
        最近更新 更多