【问题标题】:It is impossible to create a new session because 'createSession' which takes HttpClient,创建新会话是不可能的,因为“createSession”需要 HttpClient,
【发布时间】:2019-06-08 09:32:51
【问题描述】:
org.openqa.selenium.WebDriverException:无法创建新会话,因为未找到需要 HttpClient、InputStream 和 long 的“createSession”或无法访问
构建信息:版本:'3.12.0',修订:'7c6e0b3',时间:'2018-05-08T14:04:26.12Z'
我随机收到此错误我想知道 IOS 中此问题的路由原因
【问题讨论】:
标签:
iphone
exception
webdriver
appium-ios
【解决方案1】:
这个问题背后有多种原因。有多种方法可以解决此问题,具体取决于这些问题的来源。
1) 我遇到的一个问题是 DesireCapabilities.setCapability() 键/值类型不正确。我已经解决了这个问题
DesiredCapabilities.setCapability("capabilities_variable","capabilities_value");
setCapability("appWaitDuration", "600000");这里 600000 是 String 而不是 long 或 int
检查您的 setCapability 类型是否为 String/int/long。
2) 检查 USB 连接的是笔记本电脑还是电脑,如果没有连接则不是同一问题。
3) ADB 服务器可能有问题。所以 adb kill-server 和 adb start-server
4) 尝试更换 USB 并尝试一下。
5) 有时,可能是代理问题(笔记本电脑/台式机可能有一些代理设置
在组织中,因为台式机/笔记本电脑通过 TCP/IP 连接与移动设备连接)。
6) 有时,可能需要访问 PORT 的权限(sudo ufw allow portnumber (UBUNTU SYSTEM))
7) 需要环境变量Android_SDK_Home和Android平台工具路径
【解决方案2】:
**> Solution 1st**
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);
**Here comment below line and then run it will work**
desiredCap.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);
**solution 2nd Or keep above line in desired capabilities but before that do
run 3 cmd on cmd promt**
adb shell pm list packages -f > D://t.txt
adb uninstall io.appium.uiautomator2.server
adb uninstall io.appium.uiautomator2.server
desiredCap.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);