package com.constellio.app.ui.tools; import org.openqa.selenium.By; import com.constellio.app.ui.tools.components.basic.DateFieldWebElement; import com.constellio.app.ui.tools.components.basic.TextFieldWebElement; import com.constellio.app.ui.tools.components.listAddRemove.ListAddRemoveDateFieldWebElement; import com.constellio.app.ui.tools.components.listAddRemove.ListAddRemoveDateTimeFieldWebElement; import com.constellio.app.ui.tools.components.listAddRemove.ListAddRemoveDropDownWebElement; import com.constellio.app.ui.tools.components.listAddRemove.ListAddRemoveLookupWebElement; import com.constellio.app.ui.tools.components.listAddRemove.ListAddRemoveRichTextFieldWebElement; import com.constellio.app.ui.tools.components.listAddRemove.ListAddRemoveTextFieldWebElement; import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebDriver; import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebElement; public class ResearchResultWebElement { ConstellioWebElement resultElement; ConstellioWebDriver resultDriver; public ResearchResultWebElement(ConstellioWebDriver driver) { this.resultElement = driver.findElement(By.className("main-component")); this.resultDriver = driver; } public ResearchResultWebElement clickBatchProcessingLinkAndRefreshDriver(ConstellioWebDriver driver) { ConstellioWebElement link = resultElement.findElement(By.className("v-button-window-button")); link.scrollIntoView(); link.clickAndWaitForPageReload(); resultDriver = driver; return this; } public void clickSaveButtonAndWaitForPageReload() { ConstellioWebElement button = getBatchProcessPopup().findElement(By.className("v-button-primary")); button.clickAndWaitForPageReload(); } public void clickFirstResultAndWaitForPageReload() { ConstellioWebElement choiceElement = resultDriver.findElement(By.className("v-button-search-result-title")); choiceElement.clickAndWaitForPageReload(); } public ResearchResultWebElement toggleFirstCheckBoxInResult() { new CheckboxWebElement(resultElement).toggle(); return this; } public ResearchResultWebElement toggleFirstCheckBoxInBatchProcessPopup(String checkboxId) { new CheckboxWebElement(getBatchProcessPopup().findElement(By.id(checkboxId))).toggle(); return this; } public ResearchResultWebElement setModifyOption(String option) { new DropDownWebElement(getBatchProcessPopup().findElement(By.className("v-filterselect-prompt"))).typeAndSelectFirst(option); return this; } public DateFieldWebElement getDateField() { return new DateFieldWebElement(getBatchProcessPopup()); } public DateFieldWebElement getDatetimeField() { return new DateFieldWebElement(getBatchProcessPopup(), "yyyy-MM-dd hh:mm:ss"); } public TextFieldWebElement getTextField() { return new TextFieldWebElement(getBatchProcessPopup().findElement(By.className("v-textfield"))); } public TextFieldWebElement getTextAreaField() { return new TextFieldWebElement(getBatchProcessPopup().findElement(By.className("v-textarea"))); } public RichTextFieldWebElement getRichTextField() { return new RichTextFieldWebElement(getBatchProcessPopup()); } public DropDownWebElement getDropDown(String dropDownId) { return new DropDownWebElement(getBatchProcessPopup().findElement(By.id(dropDownId))); } public LookupWebElement getLookupField(String lookupId) { return new LookupWebElement(getBatchProcessPopup().findElement(By.id(lookupId))); } public ListAddRemoveDateFieldWebElement getListAddRemoveDateFieldWebElement() { return new ListAddRemoveDateFieldWebElement(getBatchProcessPopup()); } public ListAddRemoveDateTimeFieldWebElement getListAddRemoveDateTimeFieldWebElement() { return new ListAddRemoveDateTimeFieldWebElement(getBatchProcessPopup()); } public ListAddRemoveLookupWebElement getListAddRemoveLookupWebElement() { return new ListAddRemoveLookupWebElement(getBatchProcessPopup()); } public ListAddRemoveTextFieldWebElement getListAddRemoveTextFieldWebElement() { return new ListAddRemoveTextFieldWebElement(getBatchProcessPopup()); } public ListAddRemoveRichTextFieldWebElement getListAddRemoveRichTextFieldWebElement() { return new ListAddRemoveRichTextFieldWebElement(getBatchProcessPopup()); } public ListAddRemoveDropDownWebElement getListAddRemoveDropDownWebElement() { return new ListAddRemoveDropDownWebElement(getBatchProcessPopup()); } public ConstellioWebElement getBatchProcessPopup() { return resultDriver.waitUntilElementExist(By.className("v-window-contents")); } }