Anyone successfully using JBrowserDriver with Oracle JDK 8u221?

346 views
Skip to first unread message

Jeff

unread,
Sep 24, 2019, 12:31:08 PM9/24/19
to Selenium Users
The exception I get is below.  I thought it was only on our headless Ubuntu 16.04 systems, but I see it on windows 10 as well.

If you use it successfully, can you post/DM me the output of 'mvn dependency:tree' so that I can compare it to mine?  I had this working at one point with JBrowserDriver v1.0.1 and I have been unsuccessful in determining what change caused the issue.

Thanks!!!!


Exception:
[2019-09-24T02:07:40.513][Instance 1][Port 8590] Exception in Application start method
[2019-09-24T02:07:40.516][Instance 1][Port 8590] java.lang.RuntimeException: Exception in Application start method
[2019-09-24T02:07:40.516][Instance 1][Port 8590] at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
[2019-09-24T02:07:40.516][Instance 1][Port 8590] at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$1(LauncherImpl.java:182)
[2019-09-24T02:07:40.516][Instance 1][Port 8590] at java.lang.Thread.run(Thread.java:748)
[2019-09-24T02:07:40.516][Instance 1][Port 8590] Caused by: java.lang.AbstractMethodError: com.sun.glass.ui.Timer._resume(J)V
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.glass.ui.Timer.resume(Timer.java:151)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.javafx.tk.quantum.QuantumToolkit.resumeTimer(QuantumToolkit.java:511)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.javafx.tk.quantum.QuantumToolkit.access$000(QuantumToolkit.java:135)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.javafx.tk.quantum.QuantumToolkit$PulseTask.set(QuantumToolkit.java:202)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.javafx.tk.quantum.QuantumToolkit.setAnimationRunnable(QuantumToolkit.java:865)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.javafx.tk.quantum.MasterTimer.postUpdateAnimationRunnable(MasterTimer.java:105)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.updateAnimationRunnable(AbstractMasterTimer.java:324)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.access$100(AbstractMasterTimer.java:253)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.scenario.animation.AbstractMasterTimer.addAnimationTimer(AbstractMasterTimer.java:210)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at javafx.animation.AnimationTimer.start(AnimationTimer.java:104)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at javafx.scene.web.WebEngine$PulseTimer.start(WebEngine.java:1233)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at javafx.scene.web.WebEngine$PulseTimer.access$1000(WebEngine.java:1210)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at javafx.scene.web.WebEngine.<init>(WebEngine.java:902)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at javafx.scene.web.WebEngine.<init>(WebEngine.java:868)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at javafx.scene.web.WebView.<init>(WebView.java:273)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.machinepublishers.jbrowserdriver.App.start(App.java:123)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:863)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
[2019-09-24T02:07:40.517][Instance 1][Port 8590] at java.security.AccessController.doPrivileged(Native Method)
[2019-09-24T02:07:40.518][Instance 1][Port 8590] at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
[2019-09-24T02:07:40.518][Instance 1][Port 8590] at com.machinepublishers.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:94)
[2019-09-24T02:07:40.518][Instance 1][Port 8590] at com.machinepublishers.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:53)
[2019-09-24T02:07:40.518][Instance 1][Port 8590] ... 1 more

Jeff

unread,
Sep 24, 2019, 2:31:04 PM9/24/19
to Selenium Users
When I switch to using JBrowserDriver 1.1.0-RC2 with Selenium 3.141.59 I get this exception:

  org.openqa.selenium.WebDriverException: org/openqa/selenium/WindowType
  Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
  System info: host: 'RJV-T1700', ip: '10.131.25.254', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_221'
  Driver info: driver.version: JBrowserDriver
  at com.machinepublishers.jbrowserdriver.Util.handleException(Util.java:136)
  at com.machinepublishers.jbrowserdriver.JBrowserDriver.getKeyboard(JBrowserDriver.java:1007)
  at org.openqa.selenium.interactions.Actions.<init>(Actions.java:69)
  at qa.selenium.SeleniumBase.getDriver(SeleniumBase.java:346)
  at qa.selenium.SeleniumDriverFactory.get(SeleniumDriverFactory.java:88)
  at qa.accountprovisioner.AccountProvisionerTestBase.validateSignup(AccountProvisionerTestBase.java:115)
  at qa.accountprovisioner.Test_Endpoint_TrialSubscription.test_Advanced_AddNFRAsNewService(Test_Endpoint_TrialSubscription.java:407)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
  at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
  at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)
  at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
  at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
  at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
  at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
  at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
  at java.util.ArrayList.forEach(ArrayList.java:1257)
  at org.testng.TestRunner.privateRun(TestRunner.java:770)
  at org.testng.TestRunner.run(TestRunner.java:591)
  at org.testng.SuiteRunner.runTest(SuiteRunner.java:402)
  at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)
  at org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)
  at org.testng.SuiteRunner.run(SuiteRunner.java:304)
  at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
  at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
  at org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)
  at org.testng.TestNG.runSuitesLocally(TestNG.java:1102)
  at org.testng.TestNG.runSuites(TestNG.java:1032)
  at org.testng.TestNG.run(TestNG.java:1000)
  at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:135)
  at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:193)
  at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:94)
  at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:146)
  at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
  at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
  at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
  at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
  Caused by: java.lang.NoClassDefFoundError: org/openqa/selenium/WindowType
  at java.lang.Class.getDeclaredMethods0(Native Method)
  at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
  at java.lang.Class.privateGetPublicMethods(Class.java:2902)
  at java.lang.Class.getMethods(Class.java:1615)
  at sun.rmi.server.Util.getRemoteInterfaces(Util.java:244)
  at sun.rmi.server.Util.getRemoteInterfaces(Util.java:216)
  at sun.rmi.server.Util.createProxy(Util.java:146)
  at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:226)
  at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:383)
  at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:346)
  at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:225)
  at com.machinepublishers.jbrowserdriver.RemoteObject.<init>(RemoteObject.java:26)
  at com.machinepublishers.jbrowserdriver.TargetLocatorServer.<init>(TargetLocatorServer.java:33)
  at com.machinepublishers.jbrowserdriver.Context.init(Context.java:109)
  at com.machinepublishers.jbrowserdriver.JBrowserDriverServer.init(JBrowserDriverServer.java:175)
  at com.machinepublishers.jbrowserdriver.JBrowserDriverServer.getKeyboard(JBrowserDriverServer.java:518)
  at com.machinepublishers.jbrowserdriver.JBrowserDriverServer.getKeyboard(JBrowserDriverServer.java:67)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
  at sun.rmi.transport.Transport$1.run(Transport.java:200)
  at sun.rmi.transport.Transport$1.run(Transport.java:197)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  at java.lang.Thread.run(Thread.java:748)
  Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WindowType
  at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  ... 34 more

Jeff

unread,
Sep 24, 2019, 6:42:53 PM9/24/19
to Selenium Users
For those that might care....

It seems JBrowserDriver v1.0.1 will not work with Oracle Java 8u212 or later due to a change in the abstract class com.sun.glass.ui.Timer which seemed to add two additional methods that are not implemented in JBrowserDriver v1.0.1 implementation, resulting in the AbstractMethodError.  

This was fixed in JBrowserDriver v1.1.0-RCx, but only after code changes switching to Selenium 4.0.0-alpha-1 and adding code that references the org.openqa.selenium.WindowType class which is not available in Selenium3, causing the ClassNotFoundException.

So to use JBrowserDriver v1.0.1 you must use Java 8 u 211 or older (the exact version needs to be verified).  

To use newer JBrowserDriver v1.1.0-RCx, you need to use Selenium 4.0.0-alpha-1.

Since I prefer to use the release version of Selenium3, a pull request was submitted to JBrowserDriver to release a v1.0.2 version that will work with Selenium 3.141.x as well as newer Java 8u212+ versions.
Reply all
Reply to author
Forward
0 new messages