首页 文章

无法创建新的远程会话 . Appium

提问于
浏览
2
public class StartFirstJobTest {

AppiumDriver driver;
@BeforeTest
public void setUp() throws Exception {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("deviceName", "F4AZFG07P508");
    //capabilities.setCapability("platformName","Android");
    //capabilities.setCapability("platformVersion", "5.0");
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

When I try to run the test, I get this error.

org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话 . desired capabilities = Capabilities [{platformName = Android,deviceName = F4AZFG07P508}],required capabilities = Capabilities [{}] Build info:version:'3.3.1',revision:'5234b325d5',time:'2017-03-10 09 :10:29 0000'系统信息:主持人:'MacBook-Pro-Roman.local',ip:'fe80:0:0:0:77:aef0:77:32%en0',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10 .12.3',java.version:'1.8.0_121'驱动程序信息:driver.version:AndroidDriver

我认为我在appium中正确设置了所有内容(当检查器启动时,设备已安装应用程序并且可以进行测试)

作为项目收藏家,我使用Maven

UPD . I'm trying to automate the application. I specified additional capabilities in the code

@BeforeTest
public void setUp() throws Exception {
    File app = new File("/Users/romanderabin/Downloads/TimeTracker.apk");
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("deviceName","F4AZFG07P508");
    capabilities.setCapability("platformVersion", "5.0");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("app", app.getAbsolutePath());
    capabilities.setCapability("appPackage", "com.ronasit.timetrackerandroid");
    capabilities.setCapability("appActivity","com.ronasit.timetrackerandroid.MainActivity");
    driver = new AndroidDriver(new URL("http://127.0.0.1:4727/wd/hub/"), capabilities);

and the error is the same

org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话 . 期望的能力=能力[{应用= /用户/ romanderabin /下载/ TimeTracker.apk,appPackage = com.ronasit.timetrackerandroid,appActivity = com.ronasit.timetrackerandroid.MainActivity,platformVersion = 5.0,platformName =机器人,DEVICENAME = F4AZFG07P508}] ,required capabilities = Capabilities [{}]构建信息:版本:'3.3.1',修订版:'5234b325d5',时间:'2017-03-10 09:10:29 0000'系统信息:主机:'MacBook-Pro -Roman.local',ip:'fe80:0:0:0:77:aef0:77:32%en0',os.name:'Mac OS X',os.arch:'x86_64',os.version: '10 .12.3',java.version:'1.8.0_121'驱动程序信息:driver.version:AndroidDriver,位于org.openqa.selenium.remote的org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126) .httpCommandExecutor.execute(HttpCommandExecutor.java:141)ato.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:69)atg.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)at at io.appium.java_client.DefaultGenericMobileD river.execute(DefaultGenericMobileDriver.java:40)在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在org.openqa.selenium.remote.RemoteWebDriver(RemoteWebDriver.java:244)在org.openqa.selenium.remote.RemoteWebDriver . (RemoteWebDriver.java:131) . (RemoteWebDriver.java:144 )在io.appium.java_client.DefaultGenericMobileDriver . (DefaultGenericMobileDriver.java:36)在io.appium.java_client.AppiumDriver . (AppiumDriver.java:114)在io.appium.java_client.AppiumDriver . (AppiumDriver.java:132)在io.appium.java_client.android.AndroidDriver . (AndroidDriver.java:92)在StartFirstJobTest.setUp(StartFirstJobTest.java:30)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl .java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at j ava.lang.reflect.Method.invoke(Method.java:498)在org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)在org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510)在在org.testng.TestRunner.beforeRun(TestRunner.java:648)org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211)在org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)在org.testng.TestRunner.run(TestRunner.java:616)在org.testng.SuiteRunner.runTest(SuiteRunner.java:359)在org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)在org.testng.SuiteRunner .privateRun(SuiteRunner.java:312)在org.testng.SuiteRunner.run(SuiteRunner.java:261)在org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)在org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker . 的java:86)在org.testng.TestNG.runSuitesSequentially(TestNG.java:1191)在org.testng.TestNG.runSuitesLocally(TestNG.java:1116)在org.testng.TestNG.run(TestNG.java:1024)在org.testng.IDEA RemoteTestNG.run(IDEARemoteTestNG.java:72)在org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:127)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(Method.java:498)在com.intellij.rt.execution.application.AppMain.main(AppMain .java:147)测试被忽略了 .

Appium logs when I'm trying start test

[HTTP] - > POST / wd / hub / session{ “desiredCapabilities”:{ “应用程序”: “/用户/ romanderabin /下载/ TimeTracker.apk”, “appPackage”: “com.ronasit.timetrackerandroid”, “appActivity”: “com.ronasit.timetrackerandroid.MainActivity”,” platformVersion “:” 5.0" , “platformName”: “机器人”, “设备名”: “F4AZFG07P508”}, “requiredCapabilities”:{}, “能力”:{ “desiredCapabilities”:{ “应用程序”:“/用户/ romanderabin /Downloads/TimeTracker.apk","appPackage":"com.ronasit.timetrackerandroid","appActivity":"com.ronasit.timetrackerandroid.MainActivity","platformVersion":"5.0","platformName":"Android” “设备名称”: “F4AZFG07P508”}, “requiredCapabilities”:{}}, “alwaysMatch”:{ “应用程序”: “/用户/ romanderabin /下载/ TimeTracker.apk”, “appPackage”: “com.ronasit.timetrackerandroid” ,“appActivity”:“com.ronasit.timetrackerandroid.MainActivity”,“platformVersion”:“5.0”,“platformName”:“Android”,“deviceName”:“F4AZFG07P508”},“firstMatch”:[]} [debug] [MJSONWP]错误的参数:BadParametersError:参数不正确 . 我们想要{“required”:[“desiredCapabilities”],“optional”:[“requiredCapabilities”,“sessionId”,“id”]}你发送了[“desiredCapabilities”,“requiredCapabilities”,“capabilities”,“alwaysMatch” ,“firstMatch”] [HTTP] < - POST / wd / hub / session 400 4 ms - 228

2 回答

  • 0

    我找到了问题的解决方案 . 将Appium Java客户端版本4.1.2更新到5.0.0 BETA6并使用Selenium-Java版本3.3.1

  • 2

    我希望你使用的是物理设备而不是模拟器 . 在这两种情况下,我们都需要在所需功能中提及浏览器或应用程序文件详细信息 . 我假设你没有在代码和Appium GUI中提到这些东西 . 下面是使用appium测试混合apk的测试示例代码 .

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("deviceName","ANDROID");
    capabilities.setCapability("platformVersion", "6");
    capabilities.setCapability("platformName",Constant.appPlatform);
    capabilities.setCapability("app", app.getAbsolutePath());
    capabilities.setCapability("appPackage", Constant.appPackage);
    capabilities.setCapability("appActivity",Constant.appActivity);
    driver = new AndroidDriver(new URL("http://127.0.0.1:4727/wd/hub"), capabilities);
    

    此代码将调用在目标设备中打开的应用程序,其中提到的应用程序活动具有所需的功能 .

相关问题