首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium 4: Getting java.lang.NoSuchMethodError: java.lang.NoSuchMethodError

Selenium 4: Getting java.lang.NoSuchMethodError: java.lang.NoSuchMethodError
EN

Stack Overflow用户
提问于 2022-02-04 18:54:40
回答 2查看 991关注 0票数 1

我使用的是铬97的selenium "4.1.2“。当使用select类从下拉中选择值时,获取异常:

代码语言:javascript
复制
java.lang.NoSuchMethodError: org.openqa.selenium.WebElement.getDomAttribute(Ljava/lang/String;)Ljava/lang/String;

下面是我的项目中的依赖项:

代码语言:javascript
复制
                    ext {
                selenium = '4.1.2'
                webdrivermanager = '5.0.3'
            }
            dependencies {
                compile("org.seleniumhq.selenium:selenium-java:${selenium}")
            //    compile("io.github.bonigarcia:webdrivermanager:${webdrivermanager}")
                testImplementation "org.seleniumhq.selenium:selenium-chrome-driver:${selenium}"
                testImplementation "org.seleniumhq.selenium:selenium-firefox-driver:${selenium}"
                testImplementation "org.seleniumhq.selenium:selenium-ie-driver:${selenium}"
                testImplementation "org.seleniumhq.selenium:selenium-edge-driver:${selenium}"
                testImplementation "org.seleniumhq.selenium:selenium-safari-driver:${selenium}"
                testImplementation "org.seleniumhq.selenium:selenium-remote-driver:${selenium}"
                testImplementation "org.seleniumhq.selenium:selenium-support:${selenium}"
                testImplementation('org.junit.jupiter:junit-jupiter:5.5.1')
                testImplementation 'org.hamcrest:hamcrest:2.1'
                testImplementation 'org.hamcrest:hamcrest-library:2.1'
                testCompile("org.junit.jupiter:junit-jupiter-api:5.7.2")
                testRuntime 'org.junit.jupiter:junit-jupiter-engine:5.7.2'
                testRuntime("org.junit.platform:junit-platform-launcher:1.7.2")
                testCompile('io.github.bonigarcia:selenium-jupiter:3.3.4')
                compile group: 'io.qameta.allure', name: 'allure-junit5', version: '2.11.0'
                compile group: 'org.apache.pdfbox', name: 'pdfbox', version: '2.0.16'
                implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1'
                implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.17.1'
                compile group: 'io.qameta.allure', name: 'allure-gradle', version: '2.7.0'
                compile 'org.apache.maven.plugins:maven-surefire-plugin:2.21.0'
                compile('com.assertthat:selenium-shutterbug:1.5')
                compile 'org.slf4j:slf4j-nop:1.7.25'
                implementation group: 'javax.mail', name: 'mail', version: '1.4.7'
                implementation group: 'javax.mail', name: 'javax.mail-api', version: '1.6.2'
                runtimeClasspath group: 'javax.mail', name: 'javax.mail-api', version: '1.6.2'
                compile group: 'net.lightbody.bmp', name: 'browsermob-core', version: '2.1.4'
                compile group: 'org.postgresql', name: 'postgresql', version: '42.2.14'
                compile group: 'org.mongodb', name: 'mongo-java-driver', version: '3.12.4'
                compile group: 'ru.yandex.qatools.ashot', name: 'ashot', version: '1.5.4'
                implementation group: 'org.json', name: 'json', version: '20201115'
                implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
                testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.7.2'
                testImplementation group: 'org.junit.platform', name: 'junit-platform-runner', version: '1.7.2'
                testImplementation group: 'org.junit.platform', name: 'junit-platform-surefire-provider', version: '1.3.2'

            }

对解决这一问题的任何帮助都将受到高度赞赏。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-04 19:27:29

这个错误信息..。

代码语言:javascript
复制
java.lang.NoSuchMethodError: org.openqa.selenium.WebElement.getDomAttribute(Ljava/lang/String;)Ljava/lang/String;

...is依赖版本冲突的结果。

深潜

按照讨论中的@titusfortner 讨论,您需要交叉检查与Selenium相关的所有内容都设置为4.x,并且在依赖项中没有包含任何需要Selenium 3.x (例如,Appium 7)的内容,就像评论中提到的@asolntsev:

WebElement的所有实现都覆盖方法getDomAttribute()。它从来没有把UnsupportedOperationException扔到现实生活中去。

解决方案

您需要执行mvn dependency:treegradle dependencies,并且您将能够跟踪这个示例中描述的问题。

票数 3
EN

Stack Overflow用户

发布于 2022-06-26 22:42:16

我会尝试在build.gradle中强制使用下面的依赖项

实现(组:'org.seleniumhq.selenium',名称:'selenium-api',版本:'4.1.2') { force = true }

当依赖版本冲突发生时,会发生NoSuchMethod错误。如果您使用的是较低版本的Appium,升级到下面的版本,

实现“io.appium:java-client:8.0”

可能会解决错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70991486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档