lundi 14 septembre 2020

Appium, Java-Client duplicate class issue

I'm trying to get started with Appium. I made a basic activity project in Android studio just to test it. I edited the default test to the following:

@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);
    }
}

When I run this test i get the following error:

Duplicate class org.apache.commons.logging.Log found in modules jetified-commons-logging-1.2.jar (commons-logging:commons-logging:1.2) and jetified-spring-jcl-5.1.8.RELEASE.jar (org.springframework:spring-jcl:5.1.8.RELEASE) Duplicate class org.apache.commons.logging.LogFactory found in modules jetified-commons-logging-1.2.jar (commons-logging:commons-logging:1.2) and jetified-spring-jcl-5.1.8.RELEASE.jar (org.springframework:spring-jcl:5.1.8.RELEASE) Duplicate class org.apache.commons.logging.LogFactory$1 found in modules jetified-commons-logging-1.2.jar (commons-logging:commons-logging:1.2) and jetified-spring-jcl-5.1.8.RELEASE.jar (org.springframework:spring-jcl:5.1.8.RELEASE) Duplicate class org.apache.commons.logging.impl.NoOpLog found in modules jetified-commons-logging-1.2.jar (commons-logging:commons-logging:1.2) and jetified-spring-jcl-5.1.8.RELEASE.jar (org.springframework:spring-jcl:5.1.8.RELEASE) Duplicate class org.apache.commons.logging.impl.SimpleLog found in modules jetified-commons-logging-1.2.jar (commons-logging:commons-logging:1.2) and jetified-spring-jcl-5.1.8.RELEASE.jar (org.springframework:spring-jcl:5.1.8.RELEASE) Duplicate class org.openqa.selenium.SearchContext found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.WebDriver found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.WebDriver$ImeHandler found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.WebDriver$Navigation found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.WebDriver$Options found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.WebDriver$TargetLocator found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.WebDriver$Timeouts found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.WebDriver$Window found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.WebElement found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.internal.FindsByClassName found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.internal.FindsByCssSelector found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.internal.FindsById found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.internal.FindsByLinkText found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.internal.FindsByName found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.internal.FindsByTagName found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59) Duplicate class org.openqa.selenium.internal.FindsByXPath found in modules jetified-java-client-7.3.0.jar (io.appium:java-client:7.3.0) and jetified-selenium-api-3.141.59.jar (org.seleniumhq.selenium:selenium-api:3.141.59)

Go to the documentation to learn how to Fix dependency resolution errors.

I've edited my build.gradle so it looks like this:

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'

}

Does anyone know why im getting that error?

Aucun commentaire:

Enregistrer un commentaire