当添加 ZXing 依赖项时,Java 中的 Selenium 停止使用 java.lang.IllegalAccessError:from class org.openqa.selenium.net.UrlChecker

2023-12-01

因此,我正在使用 Selenium 和 gradle 在 java 上构建一个测试项目。现在我需要扫描之前截取的屏幕截图中的二维码。我查看了如何做到这一点,ZXing 扫描仪代码似乎是最好的建议。 (如果不是,请告诉我。)我的问题是,从我将 'com.google.zxing:zxingorg:3.3.1' 依赖项添加到我的 build.gradle 文件的那一刻起,即使我不写任何附加代码(我已经尝试过使用和不使用),网络驱动程序将停止工作,并且我收到以下消息:

java.lang.IllegalAccessError: tried to access method com.google.common.util.concurrent.SimpleTimeLimiter.<init>(Ljava/util/concurrent/ExecutorService;)V from class org.openqa.selenium.net.UrlChecker

at org.openqa.selenium.net.UrlChecker.<init>(UrlChecker.java:67)
at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:175)
at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:166)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:141)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:174)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:163)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:152)
at Specification.ClientFactory.initContext(ClientFactory.groovy:81)
at Specification.ClientFactory.<init>(ClientFactory.groovy:61)
at Specification.BaseTest.setupSpec(BaseTest.groovy:14)


Test ignored.

出现此错误的代码是我用来启动 Selenium WebDriver 的代码:

ClientFactory(){
    initUrl()   //allows to change the URL of the application under test when needed
    initContext(urlWebsite,initWebBrowser())    //switchcase to read the browser from a config file
    initClient()    //initialization of the different classes with the elements I'm accessing
}

错误中提到的第61行是指Chrome WebDriver的初始化:

webDriver = new ChromeDriver(options)

(我尝试禁用这些选项,并且得到的错误完全相同,所以我认为问题不是来自那里。)

我已经找了很长一段时间了,但没有发现任何与此错误有关的内容。 Selenium 和 ZXing 依赖项之间是否存在我不知道的冲突?如果是的话,有没有办法超越呢?如何?

UPDATE:对于遇到类似问题的人来说,如果您退回到早期版本的 selenium-java 和 ZXing,则不会出现此问题。我设法克服了 build.gradle 文件中的 'org.seleniumhq.selenium:selenium-java:3.0.1' 和 'com.google.zxing:zxingorg:3.2.1' 的问题,这不是最新的,但它是这样工作的


对于任何阅读本文的人。我在依赖项上遇到了同样的问题:

我对 com.google.guava:guava:23.3 或更高版本有严重依赖

+--- com.github.ben-manes.caffeine:guava:2.6.0
|    +--- com.github.ben-manes.caffeine:caffeine:2.6.0
|    \--- com.google.guava:guava:23.3-jre (*)

并且正在使用 org.seleniumhq.selenium:selenium-java:3.0.1 ,它与 guava 版本 > 22.0 不兼容,如下所述:

https://github.com/SeleniumHQ/selenium/issues/4381

解决方案:将 selenium 升级到最新版本解决了所讨论的问题here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当添加 ZXing 依赖项时,Java 中的 Selenium 停止使用 java.lang.IllegalAccessError:from class org.openqa.selenium.net.UrlChecker 的相关文章

随机推荐

  • 按后退按钮后文档已过期

    我有一个名为 a php 的页面 它有一个表单并通过 POST 将数据提交到同一文件 a php 页面加载时没有错误 然后我单击该页面上的任何链接 b php 或 b html 它像往常一样定向到任何页面 然后 当我单击 b php 或 b
  • nodejs child_process exec 'java -version'

    嘿 我正在 nodejs shell 中运行以下代码 exec require child process exec 现在我有 exec var 作为函数 然后我跑 exec java function error stdout stder
  • StorageEvent 在 Excel for Windows 中不起作用

    正如一些现有线程所建议的 例如 one two three 当前的对话框不提供API发送经常消息从主页 例如任务窗格 发送到对话框 所以我必须寻找解决方法 我们保留一个变量message in localStorage 然后我们使对话框选中
  • 空白CSS属性正在给flex带来问题[重复]

    这个问题在这里已经有答案了 我面临的问题是white space nowrap当有弹性容器时 有一个弹性container with flex direction row 其中有两个divsidebar使用设置一定的宽度flex 0 0 7
  • 压缩包含合并提交的前几十个 git 提交

    我有一个具有 root 权限的现有存储库R 然后是几十次提交 包括多次合并 最多X 然后线性历史直至Y 我想压碎一切R to X进入单个提交并强制推送它 我怎样才能做到这一点而不需要花费大量精力重新解决合并问题 或者 这个问题可以表述为更改
  • 使用 pandas 对 Python 中多个数据文件的数据进行平均

    我有 30 个 csv 数据文件 来自我运行的实验的 30 次重复运行 我正在使用熊猫read csv 函数将数据读入 DataFrame 列表 我想从此列表中创建一个 DataFrame 其中包含每列 30 个 DataFrame 的平均
  • 如何在画布中创建撤消功能?

    我有一个 HTML5 画布绘图板 我想创建一个具有撤消功能的按钮 我该怎么做 我的想法是拥有一个数组堆栈 每当您绘制并释放鼠标时 它都会通过推送将画布图像保存到撤消数组堆栈中 但当我尝试时 它并没有真正起作用 有更好的主意吗 先感谢您 va
  • SONAR 问题 - 关闭此 FileInputStream

    如何解决这个 SONAR 问题 关闭此 FileInputStream 提前致谢 File billFile new File filePath try BufferedReader br new BufferedReader new In
  • Angular 2 从外部数据引导应用程序

    如何仅在获取外部数据后加载 Angular 2 应用程序 例如 同一个 html 页面上有外部应用程序 我需要将一些数据传递到我的应用程序服务 想象一下 这就是API URL like some host api 在获取此信息之前 我的应用
  • 如何在jquery中迭代json数据

    如何在jquery中迭代json数据 id 856 name India id 1035 name Chennai id 1048 name Delhi id 1113 name Lucknow id 1114 name Bangalore
  • 具有动态 localName 值的 JacksonXmlRootElement

    我正在更新一个POJO我们映射到XML唯一的区别是有人想要旧的XML还有一些新的 唯一的区别是根包装器名称 所有相同的字段 例如当前根 Xml 标记设置为ExistingName他们想要一个新的值 比如BrandNewName具有所有相同的
  • Kendo-Knockout:调用一个方法,通过网格内的数据绑定从模板更改视图模型属性,打破绑定

    我正在使用 RPNiemeyer 的剑道淘汰库 我有一个剑道网格 里面有剑道模板 在模板中 有一个按钮使用剔除单击绑定 该按钮调用更改 viewModel 的方法 重现步骤 单击网格中的按钮 调用一个方法来更改 viewModel 的属性并
  • C++:指向另一个类函数的函数指针

    我有2节课 class B public int func int i class A public typedef int B fPtr int void run B mB void A run create a pointer fPtr
  • 带有粘性页脚的 3 列 css 布局 - 列 100% 高度?

    结合两个例子我发现 http alistapart com article holygrail http mystrd at modern clean css sticky footer 我想出了这个布局 http jsfiddle net
  • mouseenter mouseleave 并选择

    http jsfiddle net msNhr 当您浏览 aaaaa 时 会显示一个覆盖层 当您尝试从覆盖层中的选择中选择某些内容时 覆盖层会关闭 我怎样才能做到这一点 仅当保留实际覆盖区域时 覆盖才应关闭 Thanks 看看这个小提琴 h
  • JSF h 标签不显示[重复]

    这个问题在这里已经有答案了 使用 Netbeans 在 Glassfish 3 1 2 2 上部署 Web 应用程序 但我的 h 标签均未显示在 Web 上 例如
  • dplyr 可以连接多个列或复合键吗?

    我意识到dplyrv3 0 允许您连接不同的变量 left join x y by c a b 将匹配x a to y b 但是 是否可以加入变量组合 或者我是否必须事先添加复合键 像这样的事情 left join x y by c a c
  • 如何使用画布处理多个按键

    使用类似的东西 window addEventListener keydown handleFn true 我如何能够同时处理多个按键以供多人使用 多人将使用一个键盘 因此可以同时按下 Q 和 P 键来移动屏幕上的不同对象 我没有keyup
  • PHP Curl HMAC-SHA1

    在这方面需要帮助 我需要从 URL 的 API 调用中获取 json 数据 它说调用需要 内容类型 application x www form urlencoded HTTP 标头 密钥 gt APIKEY HTTP HEADERS si
  • 当添加 ZXing 依赖项时,Java 中的 Selenium 停止使用 java.lang.IllegalAccessError:from class org.openqa.selenium.net.UrlChecker

    因此 我正在使用 Selenium 和 gradle 在 java 上构建一个测试项目 现在我需要扫描之前截取的屏幕截图中的二维码 我查看了如何做到这一点 ZXing 扫描仪代码似乎是最好的建议 如果不是 请告诉我 我的问题是 从我将 co