From 46f9aa4df20185adc45cd9da21affe5c0304c14f Mon Sep 17 00:00:00 2001 From: Alex Plate <aleksei.plate@jetbrains.com> Date: Fri, 14 Mar 2025 12:47:40 +0200 Subject: [PATCH] UI Tests: Handle different name of the project tree for the different version of IJ --- .../src/testFixtures/kotlin/ui/pages/IdeaFrame.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/ui-fixtures/src/testFixtures/kotlin/ui/pages/IdeaFrame.kt b/tests/ui-fixtures/src/testFixtures/kotlin/ui/pages/IdeaFrame.kt index 5f454a293..c23d0809e 100644 --- a/tests/ui-fixtures/src/testFixtures/kotlin/ui/pages/IdeaFrame.kt +++ b/tests/ui-fixtures/src/testFixtures/kotlin/ui/pages/IdeaFrame.kt @@ -16,6 +16,7 @@ import com.intellij.remoterobot.fixtures.FixtureName import com.intellij.remoterobot.fixtures.JTreeFixture import com.intellij.remoterobot.search.locators.byXpath import com.intellij.remoterobot.stepsProcessing.step +import com.intellij.remoterobot.utils.WaitForConditionTimeoutException import com.intellij.remoterobot.utils.waitFor import java.time.Duration @@ -30,8 +31,15 @@ class IdeaFrame( remoteComponent: RemoteComponent, ) : CommonContainerFixture(remoteRobot, remoteComponent) { - val projectViewTree - get() = find<JTreeFixture>(byXpath("MyProjectViewTree", "//div[@class='MyProjectViewTree']"), Duration.ofSeconds(30)) + val projectViewTree: JTreeFixture + get() { + return try { + find<JTreeFixture>(byXpath("MyProjectViewTree", "//div[@class='MyProjectViewTree']"), Duration.ofSeconds(30)) + } catch (_: WaitForConditionTimeoutException) { + // [VERSION UPDATE] 2025.1+ Leave only MyProjectViewTree. + find<JTreeFixture>(byXpath("ProjectViewTree", "//div[@class='ProjectViewTree']"), Duration.ofSeconds(30)) + } + } val projectName get() = step("Get project name") { return@step callJs<String>("component.getProject().getName()") }