无法实例化AppiumDriver类型

pau*_*aul 7 java selenium appium

我在我的项目构建路径中添加了以下jar:

  1. java-client-2.0.0来自http://appium.io/downloads.html >> Appium客户端库>> Java
  2. 硒的Java-2.43.1
  3. 硒的Java-2.43.1-SRCS
  4. selenium-server-standalone-2.43.1
    ,这是我的代码:

    public class SampleApp{
    
    WebDriver dr;
    
    @Test
    public void testApp() throws MalformedURLException, InterruptedException {
        String apkpath = "D:\\apkdump\\sampleapp.apk";
        File app = new File (apkpath);
        DesiredCapabilities capabilities= new DesiredCapabilities();
        capabilities.setCapability(CapabilityType.BROWSER_NAME,"");
        capabilities.setCapability("deviceName","TestADB18");
        capabilities.setCapability("platformName","Android");
        capabilities.setCapability("app",app.getAbsolutePath());
        capabilities.setCapability("appPackage", "com.test");
        capabilities.setCapability("appActivity", "com.sampleapp.Main");
        dr = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
        dr.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    
    }
    
    
    }
    
    Run Code Online (Sandbox Code Playgroud)

    我正在下面的红线说明了new AppiumDriver这一点Cannot instantiate the type AppiumDriver.现在如果删除所有selenium jars错误消失但我无法用webdriver解决错误.

    罐子之间有什么冲突?

    我在这里看到了类似的问题但是可以运行代码并且正在获取Null pointer exception但是在我的情况下我甚至无法运行它,它正在运行以保存代码.其次,答案已经发布,没有使用 AppiumDriver

Has*_*adi 23

您不需要降级或任何其他内容.Java客户端版本2.0.0中的设计更改正如他们在其网站上提到的那样:

AppiumDriver现在是一个抽象类,使用IOSDriver和AndroidDriver来扩展它.

所以,只需将您的驱动程序更改为:

dr = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
Run Code Online (Sandbox Code Playgroud)

希望有帮助......


pau*_*aul 1

这个错误可以通过将Appium Client(参见我的问题中的步骤1)从最新版本降级到java-client-1.5.0. 您可以将其余的罐子保持为最新。

降级版本Appium Client可以从这里下载http://mvnrepository.com/artifact/io.appium/java-client/1.5.0