diff --git a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/common/dialogs/NewProjectDialogUI.kt b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/common/dialogs/NewProjectDialogUI.kt index 88e49c5e774b..ba49235eeff9 100644 --- a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/common/dialogs/NewProjectDialogUI.kt +++ b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/common/dialogs/NewProjectDialogUI.kt @@ -5,12 +5,13 @@ import com.intellij.driver.sdk.step import com.intellij.driver.sdk.ui.Finder import com.intellij.driver.sdk.ui.components.ComponentData import com.intellij.driver.sdk.ui.components.UiComponent -import com.intellij.driver.sdk.ui.components.elements.accessibleList import com.intellij.driver.sdk.ui.components.elements.checkBox -import com.intellij.driver.sdk.ui.components.elements.popup +import com.intellij.driver.sdk.ui.components.elements.comboBox import com.intellij.driver.sdk.ui.components.elements.textField +import com.intellij.driver.sdk.ui.shouldBe import com.intellij.driver.sdk.ui.ui import javax.swing.JTextField +import kotlin.time.Duration.Companion.seconds fun Finder.newProjectDialog(action: NewProjectDialogUI.() -> Unit) { x("//div[@title='New Project']", NewProjectDialogUI::class.java).action() @@ -40,8 +41,11 @@ open class NewProjectDialogUI(data: ComponentData) : UiComponent(data) { fun selectJdk(jdkVersion: String) { step("Pick JDK version") { - x("//div[@accessiblename='JDK:']/div[@class='BasicArrowButton']").click() - driver.ui.popup().accessibleList().clickItem(jdkVersion, false) + this.comboBox { byClass("ProjectWizardJdkComboBox") } + .apply { + val expectedItem = listValues().first { it.contains(jdkVersion) } + selectItemContains(expectedItem) + } } } @@ -63,6 +67,15 @@ open class NewProjectDialogUI(data: ComponentData) : UiComponent(data) { .click() } + fun getBasePythonInterpreters(): List { + interpreterSelector.waitFound().shouldBe( + message = "Wait for interpreter list to appear", + timeout = 5.seconds, + condition = { listValues().isNotEmpty() } + ) + return interpreterSelector.listValues() + } + val nameTextField = textField { and(byAccessibleName("Name:"), byType(JTextField::class.java)) } val groupField = textField { and(byAccessibleName("Group:"), byType(JTextField::class.java)) } val artifactField = textField { and(byAccessibleName("Artifact:"), byType(JTextField::class.java)) } @@ -75,5 +88,7 @@ open class NewProjectDialogUI(data: ComponentData) : UiComponent(data) { val compactStructureLabel = checkBox { byText("Use compact project structure") } val createMainPyCheckbox = checkBox { byText("Create a welcome script") } val installMinicondaLink = x("//div[@text='Install Miniconda']") + val projectVenvButton = x { byAccessibleName("Project venv") } + private val interpreterSelector = comboBox { byClass("PythonInterpreterComboBox") } }