![](/img/trans.png)
[英]Exception in thread “main” org.openqa.selenium.WebDriverException: chrome not reachable
[英]Exception in thread “main” org.openqa.selenium.WebDriverException
我正在尝试使用抛出此错误的Java在Eclipse IDE中测试我的应用程序。 我也启动了appium服务器。 也提供了匹配的端口号。 这是我的日志跟踪。 帮帮我。谢谢
这是我使用appium测试我的android应用程序的代码:
public class MilonowFirstTest {
static AppiumDriver<WebElement> driver;
// @BeforeClass
public static void main(String[] args) throws MalformedURLException
//public void Setup() throws MalformedURLException
{
DesiredCapabilities cap = new DesiredCapabilities();
//cap.setCapability(AndroidMobileCapabilityType.De, value);
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android emulator");
//cap.setCapability(MobileCapabilityType.APP_PACKAGE, value);
cap.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.test.myapp");
//cap.setCapability(MobileCapabilityType.APP, "");
cap.setCapability("avd", "Honor 7X API 27");
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "23");
cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium");
driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wb/hub"), cap);
Assert.assertNotNull(driver.getContext());
}
// @Test()
// public void SimpleTest()
// {
// Assert.assertNotNull(driver.getContext());
// }
}
错误日志:
Exception in thread "main" 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.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:03.216Z'
System info: host: 'DESKTOP-4DSS7OC', ip: '192.168.2.21', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_161'
Driver info: driver.version: AndroidDriver
at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:195)
at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:209)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:231)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
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:207)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:38)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:84)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:94)
at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:93)
at testcase.MilonowFirstTest.main(MilonowFirstTest.java:37)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:185)
... 13 more
Caused by: org.openqa.selenium.WebDriverException: Unable to parse remote response: The URL '/wb/hub/session' did not map to a valid resource
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:03.216Z'
System info: host: 'DESKTOP-4DSS7OC', ip: '192.168.2.21', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_161'
Driver info: driver.version: AndroidDriver
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:111)
... 18 more
关闭appium服务器,然后重新启动,这应该可以工作。 该问题的永久解决方案是:
如果愿意,可以将该配置另存为预设以供下次使用。 在您的应用程序中还包括追随欲望的能力
AppiumDriver<MobileElement> driver;
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("deviceName", "Android phone");
caps.setCapability("udid", "your device uuid");
caps.setCapability("platformName", "Android");
caps.setCapability("platformVersion", "your device version");
caps.setCapability("appPackage", "name of app package");
caps.setCapability("appActivity", "name of app activity");
driver=new AndroidDriver<MobileElement>(new URL(
"http://127.0.0.1:4723/wd/hub"), caps);
如何找到装置uuid?
它将显示您的笔记本电脑已连接设备的列表。 在连接的设备列表下方,您可以找到您的设备uuid
如何找到appPackage和appActivity
尝试输入所需的功能参数“ APP”,
cap.setCapability(MobileCapabilityType.APP, "path_to_your_app");
或者,如果您已在设备上安装了应用程序,则从匹配的配对电容开始时:
cap.setCapability("appActivity", "com.test.myapp.ui.activities.MainActivity");
cap.setCapability("appPackage", "com.test.myapp");
您可以通过以下方法检查您的活动和程序包名称:打开手机上的应用程序,然后进入控制台并运行该程序:
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
这将返回如下内容:
mCurrentFocus = Window {5f6bfe8 u0 d0 abc.com.test.android/com.test.abc.ui.home.HomeActivity}
mFocusedApp = AppWindowToken {123d4faf token = Token {asd2342 ActivityRecord {323tgee3 u0 abc.com.test.android/com.test.abc.ui.home.HomeActivity t1732}}}
如下:
窗口{5f6bfe8 u0 d0 abc.com.test.android/com.test.abc.ui.home.HomeActivity}
活动:
“ abc.com.test.android”
...是一个包装
“ com.test.abc.ui.home.HomeActivity”
但建议将所有参数混合使用APP,APP_PACKAGE和APP_ACTIVITY
希望这可以帮助,
你在打电话
driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wb/hub"), cap);
正确的URL应该是/ wd / hub 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.