在experitest中运行测试时,“由于'createSession'需要HttpClient,InputStream和long,因此无法创建新会话”

时间:2019-05-08 09:34:47

标签: appium appium-android

我正在尝试通过在eclipse中安装appium studio插件在云平台cloud.seetest.io中的android手机中运行测试,以便可以直接从eclipse IDE本身运行测试。

它总是显示错误

  

org.openqa.selenium.WebDriverException:无法创建新会话,因为找不到包含HttpClient,InputStream和long的'createSession'或无法访问

@BeforeMethod
    @Parameters("deviceQuery")
    public void setUp(@Optional("@os='android'") String deviceQuery)throws Exception{

    init(deviceQuery);
        // Init application / device capabilities
    dc.setCapability(MobileCapabilityType.APP, "cloud:xxxxxxxx/.xxxx");
    dc.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "xxxxx");
    dc.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, ".xxxxxx");
    dc.setCapability(SeeTestCapabilityType.DEVICE_QUERY, deviceQuery);
    dc.setCapability(SeeTestCapabilityType.TEST_NAME, "AndroidDemoTest");
    dc.setCapability("appVersion", "1.0.10516");
    dc.setCapability("testName", "AndroidDemoTest");
    driver = new AndroidDriver<>(new URL(getProperty("url",cloudProperties) + "/wd/hub"), dc);

    }

4 个答案:

答案 0 :(得分:0)

根据Appium client library一章,很可能不支持您的Set Appium Java Client版本:

  

您可以通过向Maven和Gradle项目添加依赖项来利用Appium Java客户端

     

请确保使用适当的版本替换

     
      
  • 4.1.2
  •   
  • 5.0.4
  •   
  • 6.1.0
  •   
  • 7.0.0
  •   
     

建议在代码导出之前使用公共Maven存储库。

因此,请检查您的依赖性管理文件,并确保将io.appium.java-client依赖性更新为支持的版本之一。

答案 1 :(得分:0)

Experitest的客户端库可能丢失。尝试在您的build.gradle中添加compile 'com.experitest:repo:+'。这将下载最新的客户端库。 This文档可能会帮助您使用Appium Studio插件创建示例项目

答案 2 :(得分:0)

解决方案第一

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "xyz");
capabilities.setCapability("platformVersion", "6.0");
capabilities.setCapability("platformName", Platform.ANDROID);
capabilities.setCapability("appPackage", "com.hp.HPSupportAssistant");
capabilities.setCapability("appActivity", "com.hp.HPSupportAssistant.MainActivity");
 capabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 6000);    capabilities.setCapability(AndroidMobileCapabilityType.AUTO_GRANT_PERMISSIONS,true);
//desiredCap.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);

在下面的行中添加注释,然后运行即可 wantedCap.setCapability(MobileCapabilityType.AUTOMATION_NAME,AutomationName.ANDROID_UIAUTOMATOR2);

解决方案第二 或保持所需能力以上,但在此之前 在cmd promt上运行3 cmd

adb shell pm list packages -f > D://t.txt
adb uninstall io.appium.uiautomator2.server
adb uninstall io.appium.uiautomator2.server.test

desiredCap.setCapability(MobileCapabilityType.AUTOMATION_NAME,AutomationName.ANDROID_UIAUTOMATOR2);

答案 3 :(得分:0)

当驱动程序无法启动时,会发生此问题。连接到experitest时,这些可能是导致此错误的问题:

  1. 实验许可。如果许可证一次仅用于一个设备/会话,则不能尝试创建另一会话。

  2. 所需功能。确保具有您在代码中提到的设备ID的设备在seetest云中可用。最佳做法是先阻止设备,然后将UDID复制到代码。

实际上,可能有很多原因导致没有创建驱动程序。该错误背后的实际原因在堆栈跟踪中本身已提及。在堆栈跟踪中查找实际原因。

就我而言,这是第二次发生。