使用 Marathon 驱动程序测试 FX 应用程序 - 无法与应用程序建立连接

问题描述

问题 - 使用 Marathon 驱动程序测试 FX 应用程序 - 无法与应用程序建立连接。 步骤-

  1. 使用马拉松配置文件集成功启动基于 FX 的客户端应用程序。 2.设置驱动程序时出现异常。
  2. 无法在文本字段中设置文本。

Code shown in image

启动后输出-

失败:createJavaProfile java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSortedSet.toImmutableSortedSet(Ljava/util/Comparator;)Ljava/util/stream/Collector; 在 org.openqa.selenium.remote.NewSessionPayload.lambda$validate$3(NewSessionPayload.java:191) 在 java.base/java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:441) 在 java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) 在 java.base/java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:442) 在 java.base/java.util.AbstractList$RandomAccessspliterator.forEachRemaining(AbstractList.java:720) 在 java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) 在 java.base/java.util.stream.AbstractPipeline.wrapAndcopyInto(AbstractPipeline.java:474) 在 java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) 在 java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) 在 java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 在 java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) 在 org.openqa.selenium.remote.NewSessionPayload.validate(NewSessionPayload.java:207) 在 org.openqa.selenium.remote.NewSessionPayload.(NewSessionPayload.java:152) 在 org.openqa.selenium.remote.NewSessionPayload.create(NewSessionPayload.java:99) 在 org.openqa.selenium.remote.NewSessionPayload.create(NewSessionPayload.java:94) 在 org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:69) 在 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:138) 在 net.sourceforge.marathon.javadriver.JavaDriverCommandExecutor.execute(JavaDriverCommandExecutor.java:135) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:582) 在 org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:136) 在 net.sourceforge.marathon.javadriver.JavaDriver.(JavaDriver.java:156) 在 net.sourceforge.marathon.javadriver.JavaDriver.(JavaDriver.java:131) 在 net.sourceforge.marathon.javadriver.JavaDriver.(JavaDriver.java:112) 在 io.mosio.demograph.demo.Demo2stack.createJavaProfile(Demo2stack.java:60) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:566) 在 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108) 在 org.testng.internal.Invoker.invokeMethod(Invoker.java:661) 在 org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869) 在 org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193) 在 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) 在 org.testng.TestRunner.privateRun(TestRunner.java:744) 在 org.testng.TestRunner.run(TestRunner.java:602) 在 org.testng.SuiteRunner.runTest(SuiteRunner.java:380) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:340) 在 org.testng.SuiteRunner.run(SuiteRunner.java:289) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1301) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1226) 在 org.testng.TestNG.runSuites(TestNG.java:1144) 在 org.testng.TestNG.run(TestNG.java:1115) 在 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

解决方法

请检查谷歌番石榴版本。由于 marathon java driver 5.4.0.0 使用 selenium 3.14.0,它在内部依赖于 google.guava 版本 25.0-jre。这可能是导致问题的原因。

类似问题:

java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSortedSet.toImmutableSortedSet(Ljava/util/Comparator;)Ljava/util/stream/Collector;