首页 > 解决方案 > Appium, Java-Client 重复类问题

问题描述

我正在尝试开始使用 Appium。我在 Android Studio 中做了一个基本的活动项目只是为了测试它。我将默认测试编辑为以下内容:

@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    static AppiumDriver<MobileElement> driver;
    @Test
    public void useAppContext() throws MalformedURLException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,"ANDORID");
        capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,"9");
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"SM-G960F");
        capabilities.setCapability(MobileCapabilityType.UDID,"2a60aaba0c057ece");
        capabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT,"60");
        URL url = new URL("http://127.0.0.1:4723/wd/hub");
        driver = new AppiumDriver<MobileElement>(url,capabilities);
    }
}

当我运行此测试时,我收到以下错误:

在模块 jetified-commons-logging-1.2.jar (commons-logging:commons-logging:1.2) 和 jetified-spring-jcl-5.1.8.RELEASE.jar (org .springframework:spring-jcl:5.1.8.RELEASE) 重复类 org.apache.commons.logging.LogFactory 在模块 jetified-commons-logging-1.2.jar (commons-logging:commons-logging:1.2) 和 jetified- spring-jcl-5.1.8.RELEASE.jar (org.springframework:spring-jcl:5.1.8.RELEASE) 在模块 jetified-commons-logging-1.2.jar 中找到重复的类 org.apache.commons.logging.LogFactory$1 (commons-logging:commons-logging:1.2) 和 jetified-spring-jcl-5.1.8.RELEASE.jar (org.springframework:spring-jcl:5.1.8.RELEASE) 重复类 org.apache.commons.logging。 impl.NoOpLog 在模块 jetified-commons-logging-1.2.jar (commons-logging:commons-logging:1.2) 和 jetified-spring-jcl-5.1 中找到。8.RELEASE.jar (org.springframework:spring-jcl:5.1.8.RELEASE) 在模块 jetified-commons-logging-1.2.jar (commons-logging: commons-logging:1.2) 和 jetified-spring-jcl-5.1.8.RELEASE.jar (org.springframework:spring-jcl:5.1.8.RELEASE) 重复类 org.openqa.selenium.SearchContext 在模块 jetified-java -client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) 重复类org.openqa.selenium.WebDriver 在模块 jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq .selenium:selenium-api:3.141.59) 在模块 jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) 在模块 jetified-java-client-7.3 中找到重复的类 org.openqa.selenium.WebDriver$Navigation .0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) 重复类 org.openqa。 selenium.WebDriver$Options 在模块 jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium :selenium-api:3.141.59) 在模块 jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified- 中找到重复的类 org.openqa.selenium.WebDriver$TargetLocator selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) 在模块 jetified-java-client-7.3.0 中发现重复的类 org.openqa.selenium.WebDriver$Timeouts。jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) 重复类 org.openqa.selenium.WebDriver $Window 在模块 jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium- api:3.141.59) 在模块 jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141 中找到重复的类 org.openqa.selenium.WebElement .59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) 在模块 jetified-java-client-7.3.0.jar (io.appium:java -client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) 重复类 org.openqa.selenium.internal。FindsByCssSelector 在模块 jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api :3.141.59) 在模块 jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api- 中找到重复的类 org.openqa.selenium.internal.FindsById 3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) 在模块 jetified-java-client-7.3.0.jar (io.appium: java-client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) 在 jetified 模块中发现重复的类 org.openqa.selenium.internal.FindsByName -java-client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) 在模块 jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) 和 jetified-selenium-api-3.141.59 中发现重复的类 org.openqa.selenium.internal.FindsByTagName .jar (org.seleniumhq.selenium:selenium-api:3.141.59) 重复类 org.openqa.selenium.internal.FindsByXPath 在模块 jetified-java-client-7.3.0.jar (io.appium:java-client :7.3.0) 和 jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59)硒:硒-api:3.141.59)硒:硒-api:3.141.59)

转到文档以了解如何修复依赖关系解析错误。

我已经编辑了我的 build.gradle,所以它看起来像这样:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    defaultConfig {
        applicationId "com.example.appiumtest"
        minSdkVersion 26
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
    }
}

repositories {
    jcenter()
    maven {
        url "https://repo.maven.apache.org/maven2/"
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    implementation 'androidx.navigation:navigation-fragment:2.1.0'
    implementation 'androidx.navigation:navigation-ui:2.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    androidTestImplementation  'io.appium:java-client:7.3.0'

}

有谁知道我为什么会收到这个错误?

标签: javaseleniumtestinggradleappium

解决方案


推荐阅读