当前位置: 首页 > 知识库问答 >
问题:

构造函数远程WebDriver(能力)引用缺少的类型能力

禄仲渊
2023-03-14

我正在为android使用Appium。
我正在尝试这样设置所需的功能:

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服从jct和一个期望的能力。
我找不到确切的问题是什么。
更新:我试图通过将远程WebDriver更改为Android驱动程序-但它接着说:
类型org.openqa.selenium.remote.service.DriverService$Builder无法解析。它间接引用自必需的. classhtml" target="_blank">文件
添加的依赖关系是:
Java-client-2.1.0.jarSelenium-server-standalone-2.46.0.jar

共有2个答案

郑桐
2023-03-14

从构建路径中删除Selenium罐。只添加java-客户端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);
闻人锦
2023-03-14

您需要的功能应如下所示:

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-驱动程序:

 类似资料:
  • 我得到了下面的代码,使用数组来查找一些prim数。然而,当试图编译我的用户类PalindromeArrayUser时,它说——“类中的构造函数不能应用于给定的类型” 要求:int。找到:没有论点。原因:实际参数和正式参数列表的长度不同。 但是,我已经向构造器传递了一个int值(与我的蓝图中设计的方式相同)。我不太明白问题来自哪里。谢谢。 这是我的两节课 而这就是我的用户类问题的来源。上面的类编译良

  • 问题内容: 我有以下Java代码: 而且我不断收到错误消息:“无法将构造函数应用于给定类型” …这是否意味着超类的子类在构造函数中必须具有与超类相同数量的参数?我已经把头撞在墙上一个小时了。 问题答案: 子类不必有“相同数量的构造为超参数”任何构造函数,但它 确实 需要调用一些它的父类的构造函数从自己的构造。 如果超类具有no- arg构造函数,则默认情况下会被调用,如果省略了对超类构造函数的显式

  • 在问我的问题之前,我想把一些事情说清楚。首先,我是Java和编程的新手。第二,这是我的第一个帖子,所以如果我做错了什么,请宽容对待我。最后,我不想要任何具体的解决办法,我的任务在任何回应这篇文章。这些问题要我来解决。我想要的是一个解释,为什么我的测试代码不能编译/运行。为了更好地理解这个问题,我将粘贴赋值信息,然后是给定的驱动程序类,然后是驱动程序类访问的我的类代码。我的编译器错误显示在标题中,但

  • LeetCode上有一个问题,要求你将一个多级双链接列表扁平化。我深陷其中,于是开始四处搜索。我为它找到了一个Java解决方案,但它没有意义。 给定的类没有任何构造函数(自定义),但在解决方案中,它们将它创建一个对象,就像它有一个自定义构造函数一样! 如下所示: 这怎么可能?这就像类有某种隐藏的构造函数一样!

  • 我有2个子类:职员、学生,他们属于超类人。 以下是我的老师给出的代码(任务): 我不知道我可以输入什么来创建一个没有参数的对象。它总是出现这样的错误:Person类中的构造函数Person不能应用于给定的类型;必选:java.lang.String,int 我在网上查过,有两种方法可以解决这个问题: > < li> 在超类中添加默认值:< code > Person()//不带参数。 在子类学生中

  • 问题内容: 如果我有一个像这样的抽象类: 还有一些从Item派生的类是这样的: 我不明白为什么我不能使用泛型调用构造函数: 我知道可以有一个没有构造函数的类型,但是这种情况是不可能的,因为Pencil具有没有参数的构造函数,而Item是抽象的。但是我从eclipse中得到了这个错误: 无法实例化 我不明白为什么的 T类型 ,以及如何避免这种情况? 问题答案: 无法使用Java类型系统来强制类层次结