2015-12-08 27 views
-1

我正在使用Appium for android。
我想設置DesiredCapabilities這樣的:
構造函數RemoteWebDriver(Capabilities)指的是缺少的類型Capabilities

DesiredCapabilities capabilities = new DesiredCapabilities(); 
     capabilities.setCapability("BROWSER_NAME", "Android"); 
      capabilities.setCapability("platformName", "Android"); 
      capabilities.setCapability("deviceName", "Android"); 

capabilities.setCapability("appPackage","com.gauravdubey.gdlearning"); 
      capabilities.setCapability("appActivity","com.gauravdubey.gdlearning.MainActivity"); 


(以下行給出的錯誤 - 構造RemoteWebDriver(功能)是指缺少類型功能)

WebDriver driver=new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities); 

然而,定義要求同一件事 - 一個Url obejct和一個Desired Capabilities。
我找不到確切的問題。
UPDATE: 我試圖通過改變RemoteWebDriverAndroidDriver - 但是它說:
類型org.openqa.selenium.remote.service.DriverService $ Builder無法得到解決。它是間接需要的.class文件中引用
添加的依賴關係
•Java的客戶端 - 2.1.0.jar •硒 - 服務器 - 獨立 - 2.46.0.jar

+0

改爲移除驅動程序,你應該使用'司機=新AndroidDriver(新URL( 「http://127.0.0.1:4723/wd/hub/」),能力);' –

+0

@HelpingHands對日Thnx及時回覆。它現在說:類型org.openqa.selenium.remote.service.DriverService $ Builder無法解析。它是從所需的.class文件間接引用的。是否有任何依賴項被再次顯式添加? – AnswerDroid

+0

您是否將客戶端JAR導入項目? –

回答

0

你所需能力應如下:

DesiredCapabilities capabilities = new DesiredCapabilities() 
     capabilities.setCapability(CapabilityType.BROWSER_NAME, browserName) 
     capabilities.setCapability(CapabilityType.VERSION, version) 
     capabilities.setCapability(MobileCapabilityType.PLATFORM, platformName) 
     capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, deviceName) 
     capabilities.setCapability(MobileCapabilityType.UDID, deviceID) 
     capabilities.setCapability(MobileCapabilityType.APP, appLocationPath) 
     def URL remoteAddress = new URL("http://$hubIP:4444/wd/hub") 
     this.androidDriver = new AndroidDriver(remoteAddress, capabilities) 

而且你必須有io.appium:java-client:3.2.0依賴。 應該以這種方式工作(爲我工作)。

更新: 找到org.seleniumhq.selenium:selenium-remote-driver:<version>依賴關係丟失。它可以與org.seleniumhq.selenium:selenium-server:<version>org.seleniumhq.selenium:selenium-java:<version>一起添加。

+0

thnx fr你的答案。我想它是一個groovy代碼。我編寫了等效的Java代碼。並在新的AndroidDriver()..線遺憾不幸再次得到這個錯誤:類型org.openqa.selenium.remote.service。DriverService $ Builder無法解析。它是從所需的.class文件間接引用的 – AnswerDroid

+0

好吧,我現在發現了這個問題。請參閱更新。 –

+0

我沒有使用maven。那麼哪個jar文件要包含?我已經添加了selenium-remote-client-2.0a2.jar,selenium-api-2.43.1.jar但還沒有正常工作。感謝 – AnswerDroid

-1

從您的構建路徑中刪除硒罐。只添加java-client jar來建立路徑。

因此,您可以在您的Java代碼中使用以下功能。我在我的java項目中使用了相同的功能。

File app = new File("absolute-apk-path-of-your-app"); 
    DesiredCapabilities capabilities = new DesiredCapabilities(); 
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android"); 
    capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,"your-device-android-version"); 
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"your-device-id"); 
    capabilities.setCapability(MobileCapabilityType.APP, app); 
    capabilities.setCapability("deviceName","your-device-name"); 
    capabilities.setCapability("appPackage", "your-app-pckg-name"); 
    capabilities.setCapability("appActivity", "your-app-activity"); 
    capabilities.setCapability("appWaitActivity", "your-app-wait-activity-if-app-has"); 
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 
+0

這是錯誤的。如果仔細觀察問題的堆棧跟蹤,則會發現它缺少Selenium庫('org.openqa.selenium.remote.service.DriverService $ Builder')。 –

相關問題