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

AndroidDriver不是通用的,无法参数化

倪子晋
2023-03-14

我想自动化一个简单的应用程序脚本,从主屏幕打开play store应用程序。当我尝试运行脚本时,出现以下错误:

AppiumDriver类型不是泛型;它不能用参数参数化,因为AndroidDriver类型不是泛型的;它不能用参数参数化

我安装的依赖项包括:

selenium-server-standalone-3.141.59。jar,commons-lang3-3.9。jar,client-combined-3.141.59。jar,client-combined-3.141.59-sources。jar,java-client-2.1.0。jar,java-client-7.0.0。jar,java-client-4.1.2。罐子

包装测试;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;

public class AppiumTest {

    public static void main(String[] args) {

        //Set the Desired Capabilities
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability("deviceName", "My Phone");
        caps.setCapability("udid", "RZ8M41XNX1E"); //Give Device ID of your mobile phone
        caps.setCapability("platformName", "Android");
        caps.setCapability("platformVersion", "6.0");
        caps.setCapability("appPackage", "com.android.vending");
        caps.setCapability("appActivity", "com.google.android.finsky.activities.MainActivity");
        caps.setCapability("noReset", "true");

        //Instantiate Appium Driver
        try {
                AppiumDriver<MobileElement> driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), caps);

        } catch (MalformedURLException e) {
            System.out.println(e.getMessage());
        }
    }
}

共有1个答案

邓元白
2023-03-14

如果这是项目中唯一的类,那么您只需要一个依赖项:Appium java-client-7.0.0。

你不需要其他人,因为他们是通过Maven的传递依赖机制解决的。在你的情况下,你正遭受一个Jar地狱的折磨,这是我在类路径中的多个不同的冲突Appium Java客户端库造成的

鉴于pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>testing.appium</groupId>
    <artifactId>appium-java</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies>

        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>7.0.0</version>
        </dependency>
    </dependencies>

</project>

您将获得以下依赖项:

>mvn dependency:tree
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------------< testing.appium:appium-java >---------------------
[INFO] Building appium-java 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ appium-java ---
[INFO] testing.appium:appium-java:jar:0.0.1-SNAPSHOT
[INFO] \- io.appium:java-client:jar:7.0.0:compile
[INFO]    +- org.seleniumhq.selenium:selenium-java:jar:3.141.59:compile
[INFO]    |  +- org.seleniumhq.selenium:selenium-chrome-driver:jar:3.141.59:compile
[INFO]    |  +- org.seleniumhq.selenium:selenium-edge-driver:jar:3.141.59:compile
[INFO]    |  +- org.seleniumhq.selenium:selenium-firefox-driver:jar:3.141.59:compile
[INFO]    |  +- org.seleniumhq.selenium:selenium-ie-driver:jar:3.141.59:compile
[INFO]    |  +- org.seleniumhq.selenium:selenium-opera-driver:jar:3.141.59:compile
[INFO]    |  +- org.seleniumhq.selenium:selenium-remote-driver:jar:3.141.59:compile
[INFO]    |  +- org.seleniumhq.selenium:selenium-safari-driver:jar:3.141.59:compile
[INFO]    |  +- net.bytebuddy:byte-buddy:jar:1.8.15:compile
[INFO]    |  +- org.apache.commons:commons-exec:jar:1.3:compile
[INFO]    |  +- com.google.guava:guava:jar:25.0-jre:compile
[INFO]    |  |  +- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO]    |  |  +- org.checkerframework:checker-compat-qual:jar:2.0.0:compile
[INFO]    |  |  +- com.google.errorprone:error_prone_annotations:jar:2.1.3:compile
[INFO]    |  |  +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
[INFO]    |  |  \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
[INFO]    |  +- com.squareup.okhttp3:okhttp:jar:3.11.0:compile
[INFO]    |  \- com.squareup.okio:okio:jar:1.14.0:compile
[INFO]    +- org.seleniumhq.selenium:selenium-support:jar:3.141.59:compile
[INFO]    +- org.seleniumhq.selenium:selenium-api:jar:3.141.59:compile
[INFO]    +- com.google.code.gson:gson:jar:2.8.5:compile
[INFO]    +- org.apache.httpcomponents:httpclient:jar:4.5.6:compile
[INFO]    |  +- org.apache.httpcomponents:httpcore:jar:4.4.10:compile
[INFO]    |  +- commons-logging:commons-logging:jar:1.2:compile
[INFO]    |  \- commons-codec:commons-codec:jar:1.10:compile
[INFO]    +- cglib:cglib:jar:3.2.8:compile
[INFO]    |  +- org.ow2.asm:asm:jar:6.2.1:compile
[INFO]    |  \- org.apache.ant:ant:jar:1.10.3:compile
[INFO]    |     \- org.apache.ant:ant-launcher:jar:1.10.3:compile
[INFO]    +- commons-validator:commons-validator:jar:1.6:compile
[INFO]    |  +- commons-beanutils:commons-beanutils:jar:1.9.2:compile
[INFO]    |  +- commons-digester:commons-digester:jar:1.8.1:compile
[INFO]    |  \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO]    +- org.apache.commons:commons-lang3:jar:3.8:compile
[INFO]    +- commons-io:commons-io:jar:2.6:compile
[INFO]    +- org.springframework:spring-context:jar:5.1.0.RELEASE:compile
[INFO]    |  +- org.springframework:spring-aop:jar:5.1.0.RELEASE:compile
[INFO]    |  +- org.springframework:spring-beans:jar:5.1.0.RELEASE:compile
[INFO]    |  +- org.springframework:spring-core:jar:5.1.0.RELEASE:compile
[INFO]    |  |  \- org.springframework:spring-jcl:jar:5.1.0.RELEASE:compile
[INFO]    |  \- org.springframework:spring-expression:jar:5.1.0.RELEASE:compile
[INFO]    +- org.aspectj:aspectjweaver:jar:1.9.1:compile
[INFO]    \- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.801 s
[INFO] Finished at: 2019-05-29T15:00:39+02:00
[INFO] ------------------------------------------------------------------------

您还可以查看appium-java-testng示例项目,并熟悉并行测试-最佳实践文章。

 类似资料:
  • 问题内容: 我对Eclipse Galileo有一个奇怪的问题。 我将Java 1.6设置为我的JRE。在这行代码上 我在Eclipse的问题列表中看到以下错误: Collection类型不是通用的;不能使用参数对其进行参数化 我用Ant构建这个项目没有任何问题。 我该如何解决?看起来这是Eclipse问题,但是由于这个错误,我无法从IDE编译/发布项目。 问题答案: 对于那些从Google那里可

  • 问题内容: import java.awt.List; import java.awt.image.BufferedImage; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.InputStreamReader; import java

  • 问题内容: 我正在尝试编写一个使用堆栈的简单程序,这给了我错误 堆栈类型不是通用的。不能使用参数对其进行参数化 问题答案: 你的课快要开始了。您可以重命名您的班级,也可以使用完全限定的班级名称,例如

  • 问题内容: 我正在开发一个用于为Selenium测试框架构建通用菜单的框架,并且我一直在使用Guava TypeToken来解析通用参数的类型,但是现在我遇到了一个问题,其中类型令牌无法解析参数: 我有一个生成菜单选项的构建器基础: 这是建造者的具体做法: 我有一个菜单基础,它具有一种返回菜单选项列表的方法: 我有一个具体的菜单是它: 我曾期望in 中的变量可以解析为通用类型参数的名称,而不是其运

  • 问题内容: 我需要帮助使此类型适用于任何类型。 我有一个函数,我需要接受具有属性的其他类型。 我尝试使用接口,但不适用于我的财产情况。这是代码: 我明白了 错误prog.go:39:在Count的参数中无法将人类([人类]类型)用作[]哺乳动物 有关更多详细信息,请参见Go Playground,网址为http://play.golang.org/p/xzWgjkzcmH 问题答案: 使用接口而不

  • 问题内容: 我对包含不带参数的泛型方法的代码感到困惑,所以这种方法的返回泛型类型是什么,例如: 这是通过以下方式调用的: 接口定义为: 我的问题:是否接受字符串,对象和所有内容。那么什么时候将通用返回类型指定为String呢? 问题答案: 编译器从 LHS 分配中使用的具体类型推断出类型。 从此链接: 如果类型参数未出现在方法参数的类型中,则编译器无法通过检查实际方法参数的类型来推断类型参数。如果