我收到 session not created 异常,我使用的是 Kepler 版本的 eclipse、appium 1.6.5 和 AVD 版本 7.0,下面是 TestNG 错误日志:
Posted
技术标签:
【中文标题】我收到 session not created 异常,我使用的是 Kepler 版本的 eclipse、appium 1.6.5 和 AVD 版本 7.0,下面是 TestNG 错误日志:【英文标题】:I am getting session not created exception, i am using Kepler version of eclipse, appium 1.6.5 and AVD version 7.0, below are the TestNG error logs: 【发布时间】:2018-01-28 10:13:46 【问题描述】:log:org.openqa.selenium.SessionNotCreatedException:无法创建 新的远程会话。期望的能力 = 能力 [appActivity=com.knowarth.hrmsapp.ui.LoginActivity, 平台版本=7.0,androidPackage=com.knowarth.hrmsapp, platformName=Android, device=Android, deviceName=Nexus 5X API 24], 所需功能 = 功能 [] 构建信息:版本: '3.3.1',修订:'5234b32',时间:'2017-03-10 09:04:52 -0800'系统 信息:主机:'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' 驱动 信息:驱动程序版本:AndroidDriver 在 io.appium.java_client.remote.AppiumProtocolHandShake.lambda$1(AppiumProtocolHandShake.java:95) 在 java.util.Optional.orElseThrow(Unknown Source) 在 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) 在 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) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在 java.lang.reflect.Method.invoke(未知来源)在 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) 在 org.testng.SuiteRunner.run(SuiteRunner.java:289) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1301) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1226) 在 org.testng.TestNG.runSuites(TestNG.java:1144) 在 org.testng.TestNG.run(TestNG.java:1115) 在 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
【问题讨论】:
您是否创建了模拟器 - Nexus 5X API 24? 是的,我已经创建了它。 能看到完整的appium日志吗? 我无法添加appium登录评论,因为它太长了。 [BaseDriver] 提供了以下功能,但 appium 无法识别:androidPackage、设备。 [AndroidDriver] 错误:所需的功能必须在 Object.wrappedLogger.errorAndThrow 中包含应用、appPackage 或 browserName。 【参考方案1】:这里的问题是,您正在创建会话但没有关闭它。因此,当您第二次运行测试时,它会显示“无法分配会话”。
使用这些方法来启动和停止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");
【讨论】:
我连第一次都跑不了。如果我使用此方法启动和停止,那么我应该在哪里添加此代码,在 SetUp() 方法中?我们不需要创建另一个方法,对吧? 我正在使用 JUnit 运行 test 。所以创建 Appium 类并将上面的代码放入其中。在 public void setUp() 抛出 IOException Appium.start(); // 在这里启动驱动 测试 public void testWhatsNewDoneButton() // 测试步骤 public void tearDown() 之后抛出 IOException Appium.stop(); 【参考方案2】:我通过将 java 客户端版本从 5.0.0 降级到 4.1.2 解决了这个问题。 谢谢。
希望这会对您有所帮助。祝测试愉快!!
【讨论】:
以上是关于我收到 session not created 异常,我使用的是 Kepler 版本的 eclipse、appium 1.6.5 和 AVD 版本 7.0,下面是 TestNG 错误日志:的主要内容,如果未能解决你的问题,请参考以下文章
Python selenium Message: session not created: This version of ChromeDriver only supports Chrome vers
python+appium 已解决真机运行appium报错“WebDriverException: Message: A new session could not be created. ((代
Appium运行时没有启动activity的权限:A new session could not be created.(Original error: Permission to start act
appium-launch activity选择错误时,提示“A new session could not be created. (Original error: Permission to st
NOT NULL 约束失败:/jobs/add/ 处的jobs_job.created_by_id IntegrityError