簡體   English   中英

線程“ main”中的異常org.openqa.selenium.WebDriverException

[英]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服務器,然后重新啟動,這應該可以工作。 該問題的永久解決方案是:

  • 啟動Appium應用
  • 轉到高級設置
  • 輸入所需的服務器地址和服務器端口。 我正在使用127.0.0.1作為服務器地址和4723作為服務器端口
  • 選擇或檢查會話覆蓋

如果願意,可以將該配置另存為預設以供下次使用。 在您的應用程序中還包括追隨欲望的能力

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?

  • 在Android設備中啟用USB調試模式並連接到筆記本電腦
  • 打開命令提示符並鍵入adb設備

它將顯示您的筆記本電腦已連接設備的列表。 在連接的設備列表下方,您可以找到您的設備uuid

如何找到appPackage和appActivity

單擊此處: 如何找到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM