WebDriverException:无法创建新会话,因为找不到需要HttpClient,InputStream和long的"createSession"



我正在使用以下代码来启动android驱动程序。但我在启动驱动程序时出错了。在线:

driver = new AndroidDriver<WebElement>(new URL(appiumServiceUrl), capabilities);

完整代码:

public class Test {
protected static AppiumDriver<WebElement> driver;
private AppiumDriverLocalService appiumService;
private String appiumServiceUrl;
Properties prop = new Properties();
@org.testng.annotations.Test
public void testappiumdriver() throws FileNotFoundException, IOException
{
appiumService = AppiumDriverLocalService.buildDefaultService();
appiumService.start();
appiumServiceUrl = appiumService.getUrl().toString();
prop.load(new FileInputStream("device_capabilities.properties"));
Map<String, String> prop_map = new HashMap<String, String>();
for (String key : prop.stringPropertyNames()) {
prop_map.put(key, prop.getProperty(key));
}           
DesiredCapabilities capabilities = new DesiredCapabilities(prop_map);
driver = new AndroidDriver<WebElement>(new URL(appiumServiceUrl), capabilities);
}
}

错误:

失败:testapiumdriverorg.openqa.selenium.WebDriverException:无法创建新会话,因为"createSession"需要HttpClient,找不到InputStream和long,或者它不可访问内部版本信息:版本:"3.13.0",修订:"2f0d292",时间:"2018-06-25T15:24:212.31Z"系统信息:主机:"PSL-GN-597",ip:"192.168.2.137",os.name:"Windows 10",os.arch:"amd64",os.version:"10.0",java.version:'1.8.0_91'驱动程序信息:Driver.version:AndroidDriver位于io.apium.java_client.remote.AppiumCommandExecutiator$1.createSession(AppiumCommand Executiator.java:195(位于io.apium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommand Executor.java:209(位于io.apium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommand Executor.java:231(网址:org.openqa.selene.remote.RemoteWebDriver.exexecute(RemoteWebDriver.java:548(在io.apium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42(在io.apium.java_client.AppiumDriver.execute(AppiumDriver.java:1(在io.apium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1(在org.openqa.selenium.remote.RemoteWebDriver.startSession位于org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:130(位于io.appium.java_client.DefaultGenericMobileDriver。(DefaultGenericMobileDriver.java:38(位于io.apium.java_client.AppiumDriver。(AppiumDriver.java:84(位于io.apium.java_client.AppiumDriver。(AppiumDriver.java:94(在io.apium.java_client.android.AndroidDriver.(AndroidDriver.java:93(在测试中。Test.testapiumdriver(Test.java:37(

我在我的项目中使用以下jar:

硒java 3.13硒服务器3.13java客户端6.1.0

我也尝试过使用不同版本的selenium和java客户端,但再次出现相同的错误。

***解决方案第一个***

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

下面的注释行,然后运行它将工作

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

解决方案2或者在所需的能力上保持底线以上,但在此之前在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);

此错误消息。。。

org.openqa.selenium.WebDriverException: It is impossible to create a new session because 'createSession' which takes HttpClient, InputStream and long was not found or it is not accessible 
Build info: version: '3.13.0', revision: '2f0d292', time: '2018-06-25T15:24:21.231Z' 
System info: host: 'PSL-GGN-597', ip: '192.168.2.137', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_91' 
Driver info: driver.version: AndroidDriver

意味着AndroidDriver无法启动/生成新会话。

您的主要问题是您使用的二进制文件版本之间存在不兼容性,如下所示:

  • 您的JDK版本1.8.0_91,这是非常古老的

解决方案

  • JDK升级到最新版本JDK8u191
  • 进行系统重新启动
  • 执行您的@Test

最新更新