2015-12-08 26 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')。 –

相关问题