From 73d709065096fc716cd3b610228c663e76af5e39 Mon Sep 17 00:00:00 2001 From: "vladislav.shishov" Date: Thu, 10 Oct 2024 23:16:08 +0300 Subject: [PATCH] [remote-driver] JCefUI : inject elementFinder with retries GitOrigin-RevId: a9b670554cbb0cc55695886de8dc69019ec41ee4 --- .../src/com/intellij/driver/sdk/ui/components/JCefUI.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/JCefUI.kt b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/JCefUI.kt index e8fe2aa92ffa..0b226918758e 100644 --- a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/JCefUI.kt +++ b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/JCefUI.kt @@ -5,6 +5,7 @@ import com.intellij.driver.sdk.ui.Finder import com.intellij.driver.sdk.ui.remote.REMOTE_ROBOT_MODULE_ID import com.intellij.driver.sdk.waitFor import com.intellij.driver.sdk.waitForOne +import com.intellij.driver.sdk.withRetries import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import org.intellij.lang.annotations.Language @@ -106,7 +107,10 @@ class JCefUI(data: ComponentData) : UiComponent(data) { private fun String.escapeXpath() = replace("'", "\\x27").replace("\"", "\\x22") private fun injectElementFinderIfNeeded() { - if (!jcefWorker.callJs("!!window.elementFinder", 3_000).toBoolean()) { + val isElementFinderInjected = withRetries("check elementFinder injected", 2) { + jcefWorker.callJs("!!window.elementFinder", 3_000) + }.toBoolean() + if (!isElementFinderInjected) { jcefWorker.runJs(initScript) } }