繁体   English   中英

无法创建新的远程会话。 苹果

[英]Unable to create new remote session. Appium

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);
}

当我尝试运行测试时,出现此错误。

org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话。 所需功能 = 功能 [{platformName=Android, deviceName=F4AZFG07P508}],所需功能 = 功能 [{}] 构建信息:版本:'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

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

作为项目收集器,我使用 Maven

更新。 我正在尝试自动化应用程序。 我在代码中指定了附加功能

    @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);

错误是一样的

org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话。 所需的功能 = 功能 [{app=/Users/romanderabin/Downloads/TimeTracker.apk, appPackage=com.ronasit.timetrackerandroid, appActivity=com.ronasit.timetrackerandroid.MainActivity, platformVersion=5.0, platformName=Android, deviceName=F4AZFG07P508}] ,所需能力 = 能力 [{}] 构建信息:版本:'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.ProtocolHandshake.createSession(ProtocolHandshake.java:126) 在 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141) 在 io.appium.java_client.remote.AppiumCommandExecutor (AppiumCommandExecutor.java:69) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604) at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:40) at io.appium.java_client。 AppiumDriver.execute(AppiumDriver.java:1) at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244) at org .openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:144) 在 io.appium.java_client.DefaultGenericMobileDriver.(DefaultGeneric3MobileDriver.(DefaultGeneric3MobileDriver)在 io.appium.java_client.AppiumDriver.(AppiumDriver.java:114) 在 io.appium.java_client.Ap piumDriver.(AppiumDriver.java:132) at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:92) at StartFirstJobTest.setUp(StartFirstJobTest.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org. testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510) at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211) at org .testng.internal.Invoker.invokeConfigurations(Invoker.java:138) at org.testng.TestRunner.beforeRun(TestRunner.java:648) at org.testng.TestRunner.run(TestRunner.java:616) at org.testng。 SuiteRunner.runTest(SuiteRunner.java:359) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354) at org.testng.SuiteRunn er.privateRun(SuiteRunner.java:312) at org.testng.SuiteRunner.run(SuiteRunner.java:261) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(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.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72) 在 org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:127) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.inv (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application。 AppMain.main(AppMain.java:147)

测试忽略。

当我尝试开始测试时,Appium 会记录日志

[HTTP] --> POST /wd/hub/session {"desiredCapabilities":{"app":"/Users/romanderabin/Downloads/TimeTracker.apk","appPackage":"com.ronasit.timetrackerandroid","appActivity ":"com.ronasit.timetrackerandroid.MainActivity","platformVersion":"5.0","platformName":"Android","deviceName":"F4AZFG07P508"},"requiredCapabilities":{},"capabilities":{" requiredCapabilities":{"app":"/Users/romanderabin/Downloads/TimeTracker.apk","appPackage":"com.ronasit.timetrackerandroid","appActivity":"com.ronasit.timetrackerandroid.MainActivity","platformVersion" :"5.0","platformName":"Android","deviceName":"F4AZFG07P508"},"requiredCapabilities":{}},"alwaysMatch":{"app":"/Users/romanderabin/Downloads/TimeTracker.apk ","appPackage":"com.ronasit.timetrackerandroid","appActivity":"com.ronasit.timetrackerandroid.MainActivity","platformVersion":"5.0","platformName":"Android","deviceName":"F4AZFG07P508 "},"firstMatch":[]}

[调试] [MJSONWP] 错误参数:BadParametersError:参数不正确。 我们想要 {"required":["desiredCapabilities"],"optional":["requiredCapabilities","sessionId","id"]} 并且你发送了 ["desiredCapabilities","re​​quiredCapabilities","capabilities","alwaysMatch" ,"firstMatch"]

[HTTP] <-- POST /wd/hub/session 400 4 ms - 228

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

在处理版本兼容性时,Maven 存储库提供了 Compile Dependencies 选项。 只需向下滚动 Maven Repository 网站,您就会看到这一部分。

我希望您使用的是物理设备而不是模拟器。 在这两种情况下,我们都需要在所需功能中提及浏览器或应用程序文件的详细信息。 我假设你没有在代码和 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);  

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

尝试更换设备。 我更换了设备,它对我有用。

我遇到了同样的问题,因为我使用了清单中的 appPackage。 应该从 gradle (applicationId) 获取 appPackage。

在您的 IDE 中,在终端中运行以下命令

appium --allow-insecure chromedriver_autodownload

这将安装 chromedrivers,您就可以在 chrome 浏览器上运行代码了

这可能是一个问题,因为据我所知,您在客户端脚本所在的同一台机器上运行 Appium,请尝试使用“http://127.0.1.1:4723/wd/hub”。 这个解决方案对我有用。

AndroidDriver<AndroidElement> driver = null;
driver = new AndroidDriver<>(new URL("http://127.0.1.1:4723/wd/hub"), capabilities);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM