We started implementing UI test automation on ubuntu using IntelliJ Remote Robot in Jenkins pipelines, leveraging the JBCEFFixture class to access webview elements. However, the webview is not rendering during automation and showing just a blank page. Below are some of the error logs I observed in idea.log and runIdeForUiTests command logs.
com.intellij.platform.workspace.jps.entities.LibraryEntity to files
2025-10-24 14:21:30,357 [ 125322] SEVERE - #c.i.u.j.StartupTest - Startup JCEF test is failed (because CefApp wasn’t initialized). JCEF will be restarted with verbose logging.
java.lang.Throwable: Startup JCEF test is failed (because CefApp wasn’t initialized). JCEF will be restarted with verbose logging.
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:375)
at com.intellij.ui.jcef.StartupTest$1.run(StartupTest.java:166)
at com.intellij.openapi.application.impl.ApplicationImpl$4.run(ApplicationImpl.java:326)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at com.intellij.util.concurrency.ContextCallable.lambda$call$1(ContextCallable.java:86)
at com.intellij.util.concurrency.ContextCallable.call(ContextCallable.java:95)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:167)
at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:167)
at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:173)
at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:167)
at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:27)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:735)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:732)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:732)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-10-24 14:21:30,358 [ 125323] SEVERE - #c.i.u.j.StartupTest - IntelliJ IDEA 2025.2.4 Build #IC-252.27397.103
2025-10-24 14:21:30,358 [ 125323] SEVERE - #c.i.u.j.StartupTest - JDK: 21.0.8; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2025-10-24 14:21:30,358 [ 125323] SEVERE - #c.i.u.j.StartupTest - OS: Linux
2025-10-24 14:21:30,358 [ 125323] SEVERE - #c.i.u.j.StartupTest - Last Action: CloseProject
2025-10-24 14:21:30,365 [ 125330] INFO - STDOUT - Reinitialize CefLog.
2025-10-24 14:21:30,365 [ 125330] INFO - STDOUT -
2025-10-24 14:21:30,365 [ 125330] INFO - STDOUT - JCEF(21:30:365): initialized file logger, severity=LOGSEVERITY_VERBOSE, path=‘/home/ci/Build/workspace/amadtIntelliJBuilder/amadt_intellij/build/idea-sandbox/IC-2025.2.4/log_runIdeForUiTests/jcef_13076_i0.log’
2025-10-24 14:21:30,380 [ 125345] INFO - #c.i.u.j.JBCefApp - JCEF has been restarted with verbose logging, with new cache_path ‘/tmp/jcef_cache_13076_i0’, with log_file ‘/home/ci/Build/workspace/amadtIntelliJBuilder/amadt_intellij/build/idea-sandbox/IC-2025.2.4/log_runIdeForUiTests/jcef_13076_i0.log’
I have no issues running the tests locally on physical machines with Windows, macOS, and Linux.
For reference, the runIdeForUiTests task is configured with the following JVM options:
val runIdeForUiTests by intellijPlatformTesting.runIde.registering {
version = providers.gradleProperty("platformVersion")
type = IntelliJPlatformType.IntellijIdeaCommunity
task {
jvmArgumentProviders += CommandLineArgumentProvider {
listOf(
"-Drobot-server.port=8082",
"-Djb.privacy.policy.text=<!--999.999-->",
"-Djb.consents.confirmation.enabled=false",
"-Didea.trust.all.projects=true",
"-Dide.show.tips.on.startup.default.value=false",
"-DjbScreenMenuBar.enabled=false",
"-Dapple.laf.useScreenMenuBar=false",
"-Dide.browser.jcef.jsQueryPoolSize=10000",
"-Dide.mac.file.chooser.native=false",
)
}
}
plugins {
robotServerPlugin(remoteRobotVersion)
}
}
We are using Remote Robot version 0.11.22 and running the tests on IntelliJ version 2025.2.4