我正在获取会话未创建异常,我正在使用Kepler版本的eclipse,appium 1.6.5和AVD 7.0版,下面是TestNG错误日志:

时间:2017-08-20 04:24:25

标签: selenium appium

  

log:org.openqa.selenium.SessionNotCreatedException:无法创建   新的远程会话。期望的能力=能力   [{appActivity = com.knowarth.hrmsapp.ui.LoginActivity,   platformVersion = 7.0,androidPackage = com.knowarth.hrmsapp,   platformName = Android,device = Android,deviceName = Nexus 5X API 24}],   required capabilities = Capabilities [{}]构建信息:版本:   '3.3.1',修订版:'5234b32',时间:'2017-03-10 09:04:52 -0800'系统   info:host:'KA-LPT-104',ip:'192.168.43.85',os.name:'Windows 10',   os.arch:'amd64',os.version:'10 .0',java.version:'1.8.0_60'驱动程序   info:driver.version:AndroidDriver at   io.appium.java_client.remote.AppiumProtocolHandShake.lambda $ 1(AppiumProtocolHandShake.java:95)     在java.util.Optional.orElseThrow(未知来源)at   io.appium.java_client.remote.AppiumProtocolHandShake.createSession(AppiumProtocolHandShake.java:95)     在   io.appium.java_client.remote.AppiumCommandExecutor.doExecute(AppiumCommandExecutor.java:111)     在   io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:162)     在   org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)     在   io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)     at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)     在   io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)     在   org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)     在   org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:131)     在   org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:144)     在   io.appium.java_client.DefaultGenericMobileDriver。(DefaultGenericMobileDriver.java:38)     在io.appium.java_client.AppiumDriver。(AppiumDriver.java:88)     在io.appium.java_client.AppiumDriver。(AppiumDriver.java:112)     在   io.appium.java_client.android.AndroidDriver。(AndroidDriver.java:73)     在com.ka.tests.Appium_Webinar.setUp(Appium_Webinar.java:42)at   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at   java.lang.reflect.Method.invoke(未知来源)at   org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)     在   org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:523)     在org.testng.internal.Invoker.invokeConfigurations(Invoker.java:224)     在org.testng.internal.Invoker.invokeConfigurations(Invoker.java:146)     在org.testng.SuiteRunner.privateRun(SuiteRunner.java:326)at   org.testng.SuiteRunner.run(SuiteRunner.java:289)at   org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)at   org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)at   org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)at at   org.testng.TestNG.runSuitesLocally(TestNG.java:1226)at at   org.testng.TestNG.runSuites(TestNG.java:1144)at   org.testng.TestNG.run(TestNG.java:1115)at   org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)     at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)     在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)

2 个答案:

答案 0 :(得分:0)

这里的问题是,您正在创建会话但不关闭它。因此,当您第二次运行测试时,它会说"无法分配会话"。

使用这些方法启动和停止appium,它可以解决您的问题。

static AppiumDriverLocalService appiumService;
public static void start() throws IOException {
    AppiumServiceBuilder builder = new AppiumServiceBuilder().withArgument(GeneralServerFlag.SESSION_OVERRIDE)
                                   .withArgument(GeneralServerFlag.STRICT_CAPS);
    appiumService = builder.build();
    appiumService.start();
    System.out.println("appium server is started");
}

public static void stop() throws IOException{
    appiumService.stop();
    System.out.println("appium server is stopped");
}

答案 1 :(得分:0)

我通过将Java客户端版本从5.0.0降级到4.1.2来解决此问题。 感谢。

希望这会对你有所帮助。快乐的测试!!